2012-01-18 65 views
1
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; 
    } 

我該如何解決這個錯誤?如何使用Float數據類型調用setText()?

如何使setInt(int num);

者均基於變量num和文字都是EditText上

+0

http://sspower3.blogspot.com/2011/11/sharedpreferences-in-eazy-way。 html檢查這可能對你有幫助 – Andy 2012-01-18 09:32:59

+0

這很有趣,因爲在sharedpreferences中有任何知識之前,我正在考慮管理R.string ....但是大家都說它是靜態的,它的值不能改變,我很困惑在這個blogspot – 2012-01-18 10:14:49

+0

我想你會被{用戶名}這個聲明混淆。仔細檢查,然後你會找到解決方案。 – Andy 2012-01-18 10:24:38

回答

7

如果你傳遞一個數值作爲文本到文本字段,Android將嘗試把它解釋爲一個資源ID。首先將其設爲文本。首選的辦法是做:

num.setText(String.valueOf(returnnum)); 

(有關轉換的良好做法串,check this post

+0

完美的作品,也非常感謝鏈接:) – 2012-01-18 10:11:05

相關問題