【发布时间】:2018-06-12 03:51:13
【问题描述】:
我想在我的片段中存储一个浮点变量作为 SharedPreferences。所以我尝试设置它并稍后编辑它,但我在verbrauch = prefsver.getFloat("key", 0); 行中收到一个错误,即 Integer 无法转换为 Float 变量,尽管我认为我什至没有在那里使用 int。我存储的方式不对吗?
我的代码,它只是一个片段,所以我希望我没有剪掉任何相关的东西:
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();
}
});
}
【问题讨论】:
-
尝试删除更多的东西,从而隔离产生异常的代码。并且请不要使用德语,甚至不要用作变量的名称...尝试创建产生相同错误的最小代码。然后,您可能会发现问题出在哪里。