2014-03-29 76 views
0

我正在制作一个程序,其中我想使用一个活动作为启动屏幕,其中显示了我用作背景图像,复选框和按钮的指令列表。我希望当复选框被点击或onChecked,然后我点击按钮,该活动不应该在启动时再次看到。
我无法弄清楚如何实现代码。如何在复选框中使用共享首选项

这是我在做什么,但还是没有用

CheckBox cb; 
SharedPreferences sp; 
Button btn; 
int result; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    btn = (Button) findViewById(R.id.button1); 

    cb = (CheckBox) findViewById(R.id.checkBox1); 
    sp = (SharedPreferences) PreferenceManager 
      .getDefaultSharedPreferences(this); 
    OnCheckedChangeListener cb1 = new OnCheckedChangeListener() { 

     @Override 
     public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
      // TODO Auto-generated method stub 
      if(cb.isChecked()){ 


       SharedPreferences.Editor editor = sp.edit(); 
       editor.putInt("showActivity", 0); 
       editor.commit(); 
      } 
      else{ 


       result = sp.getInt("showActivity", -1); 
       if(result == 0){ 

       } 
      } 
     } 
    }; 
    cb.setOnCheckedChangeListener(cb1); 
    btn.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      Toast.makeText(getApplicationContext(), "dgdgd", Toast.LENGTH_LONG).show(); 
      Intent i = new Intent(); 
      i.setClass(MainActivity.this, SecondActivity.class); 
      startActivity(i); 

     } 
    }); 
} 

回答

0

添加此当您单击确定按钮,如果点击复选框

SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); 
    SharedPreferences.Editor editor = sharedPreferences.edit(); 
    editor.putInt("showActivity", 0); 
    editor.commit(); 

当您启动应用程序检查这样的..

int result; 
    SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); 
    result = sharedPreferences.getInt("showActivity", -1); 
    if(result == 0) 
     // do not show the activity.. start the next activity 
0

假设您正在查看天气显示XYZActivity与否。

在你的按钮就写这个单击开始XYZActivity前

SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); 
SharedPreferences.Editor editor = sharedPreferences.edit(); 
editor.putBoolean("showActivity",cb.isChecked()); 
editor.commit(); 

而且下一次检查。

SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); 
if(sharedPreferences.getBoolean("showActivity",false)){ 
    //check box is checked (no need to show activity) 
}else{ 
    //show activity here  
}