How to call setText() using a Float data type?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | public void onClick(View v) { switch(v.getId()){ case R.id.save2: s = text.getText().toString(); number = Float.parseFloat(num.getText().toString()); SharedPreferences.Editor editor = shared.edit(); editor.putString("sharedtext",s); editor.putFloat("sharednum",number); editor.commit(); Toast.makeText(this,"save2",Toast.LENGTH_SHORT).show(); break; case R.id.load2: String returner = shared.getString("sharedtext","Returner fail"); float returnnum = shared.getFloat("sharednum",0); text.setText(returner); num.setText(returnnum); //error here Toast.makeText(this,"load2",Toast.LENGTH_SHORT).show(); break; case R.id.page2: intent= new Intent(this,SharedPreferencesActivity.class); startActivity(intent); Toast.makeText(this,"page2",Toast.LENGTH_SHORT).show(); break; } |
我该如何解决这个错误?
如何使像setInt(int num);
顺便说一句,变量num和text都是EditText
如果您将数值作为文本传递给文本字段,Android将尝试将其解释为资源ID。 首先使其成为文本。 首选方式是:
1 | num.setText(String.valueOf(returnnum)); |
(有关转换为字符串的良好做法,请查看此文章)