java - 不能将整数转换为 float

标签 java android

我想在我的 fragment 中存储一个浮点变量作为 SharedPreferences。所以我尝试设置它并稍后对其进行编辑,但在 verbrauch = prefsver.getFloat("key", 0); 行中出现错误,无法将 Integer 转换为 Float 变量,尽管我认为我什至没有在那里使用 int 。我是否以错误的方式存储它?

我的代码,只是一个 fragment 所以我希望我没有剪掉任何相关的东西:

public class ItemThreeFragment extends Fragment {

    TextView textView11;
    float verbrauch;

    public static ItemThreeFragment newInstance() {
        ItemThreeFragment fragment = new ItemThreeFragment();
        return fragment;
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {

        final View view = inflater.inflate(R.layout.fragment_item_three, container, false);

        SharedPreferences prefsver = getActivity().getBaseContext().getSharedPreferences("myPrefsKeyv",
                Context.MODE_PRIVATE);
        verbrauch = prefsver.getFloat("key",0);

        Button button = (Button) view.findViewById(R.id.button);

        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

        final EditText et = (EditText) getActivity().findViewById(R.id.editText);
                String str = et.getText().toString();

        verbrauch = Float.valueOf(str);

                SharedPreferences prefsver = getActivity().getSharedPreferences("myPrefsKeyv",
                        Context.MODE_PRIVATE);
                prefsver.edit().putFloat("key", verbrauch)
                        .apply();
            }
        });
}

最佳答案

0 是一个 int 字面量——不是一个 float。使用 0f(带后缀),或显式转换为 (float)0。

编辑:

还要检查你是否真的存储了一个 float ,例如可能会有一些剩余值(value)。该方法将尝试将存储在 prefs 中的内容转换为 float ,如果转换不成功,它会抛出 ClassCastException。

关于java - 不能将整数转换为 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50800046/

相关文章:

java - 针对 xsd 的 Xml 验证接受错误的 xml 为有效

android - 在 android 2.1 中将一个 Activity 添加到另一个 Activity 中

java - 如何在JSP代码中获取所请求站点的IP地址?

java - JSON 字段显示不应基于 View

Android BLE 广告失败,错误代码为 1

java - Android - 从 url 获取图像作为 JSON 并在图库 View 中显示它们

android - 如何实现水平滚动的标签?

android - Oreo 更新后出现 INSTALL_FAILED_NO_MATCHING_ABIS 错误

java - 使用 Thread 类和 AsyncTask 类的线程池

java - 如何判断 JFrame 窗口是否已经打开?