2012-04-04 210 views
4

我是非常新的,將不勝感激,如果有人可以演示在Android應用程序中的Java中保存一些複選框狀態所需的代碼。假設我有一個用戶需要完成任務的工具列表(十個或更多),並希望他們能夠檢查每個工具並保存(在應用程序內,而不是sQlite)數據,以便它們在返回到應用程序時被記錄下來。保存複選框狀態

我對這是如何完成的一些想法,但真的覺得我需要看到代碼才能正確理解。

import android.app.Activity; 
import android.content.SharedPreferences; 
import android.os.Bundle; 
import android.widget.CheckBox; 

public class CheckBoxTest extends Activity{ 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.checkboxtest); 
    CheckBox cb1,cb2,cb3,cb4; 

    cb1 = (CheckBox)findViewById(R.id.checkBox1); 
    cb2 = (CheckBox)findViewById(R.id.checkBox2); 
    cb3 = (CheckBox)findViewById(R.id.checkBox3); 
    cb4 = (CheckBox)findViewById(R.id.checkBox4); 
    } 
} 
+0

解決您的問題 – 2012-04-21 12:57:59

回答

10

使用下面的代碼來存儲和檢索SharedPreference中的數據。您保存SharedPreference每個複選框狀態

//從SharedPreference

獲得價值
SharedPreferences preferences = getApplicationContext().getSharedPreferences("PROJECT_NAME", android.content.Context.MODE_PRIVATE); 
boolean value = preferences.getBoolean("KEY", false); 
String value = preferences.getString("KEY"); 

//要SharedPreference

SharedPreferences preferences = getApplicationContext().getSharedPreferences("PROJECT_NAME", android.content.Context.MODE_PRIVATE); 
SharedPreferences.Editor editor = preferences.edit(); 
editor.putString("KEY", value); 
editor.putBoolean("KEY", value); 
editor.commit(); 

外觀保存價值進去一些小的改動::::

public class CheckBoxTest extends Activity implements OnCheckedChangeListener { 

     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      // TODO Auto-generated method stub 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.favorites_add_button); 
      CheckBox cb1,cb2,cb3,cb4; 

      cb1 = (CheckBox)findViewById(R.id.checkBox1); 
      cb1.setChecked(getFromSP("cb1")); 
      cb1.setOnCheckedChangeListener(this); 
      cb2 = (CheckBox)findViewById(R.id.checkBox2); 
      cb2.setChecked(getFromSP("cb2")); 
      cb2.setOnCheckedChangeListener(this); 
      cb3 = (CheckBox)findViewById(R.id.checkBox3); 
      cb3.setChecked(getFromSP("cb3")); 
      cb3.setOnCheckedChangeListener(this); 
      cb4 = (CheckBox)findViewById(R.id.checkBox4); 
      cb4.setChecked(getFromSP("cb4")); 
      cb4.setOnCheckedChangeListener(this); 

     } 
     private boolean getFromSP(String key){ 
     SharedPreferences preferences = getApplicationContext().getSharedPreferences("PROJECT_NAME", android.content.Context.MODE_PRIVATE); 
     return preferences.getBoolean(key, false); 
     } 
     private void saveInSp(String key,boolean value){ 
     SharedPreferences preferences = getApplicationContext().getSharedPreferences("PROJECT_NAME", android.content.Context.MODE_PRIVATE); 
     SharedPreferences.Editor editor = preferences.edit(); 
     editor.putBoolean(key, value); 
     editor.commit(); 
     } 
     @Override 
     public void onCheckedChanged(CompoundButton buttonView, 
       boolean isChecked) { 
      // TODO Auto-generated method stub 
      switch(buttonView.getId()){ 
      case R.id.checkBox1: 
      saveInSp("cb1",isChecked); 
      break; 
      case R.id.checkBox2: 
      saveInSp("cb2",isChecked); 
      break; 

      case R.id.checkBox3: 
      saveInSp("cb3",isChecked); 
      break; 

      case R.id.checkBox4: 
      saveInSp("cb4",isChecked); 
      break; 
      } 

     } 
     } 
+0

輝煌,感謝您的幫助和耐心做多。很多學習都要做,但這對我來說是一個巨大的幫助,現在我可以看到發生了什麼。 – DarkLion 2012-04-23 18:54:52