【问题标题】:How to use shared preference with checkbox如何通过复选框使用共享首选项
【发布时间】:2014-03-29 16:01:38
【问题描述】:

我正在制作一个程序,我想在其中使用一个活动作为启动屏幕,它显示了我用作背景图像、复选框和按钮的指令列表。我希望当单击复选框或 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);

        }
    });
}

【问题讨论】:

    标签: android checkbox sharedpreferences


    【解决方案1】:

    如果选中复选框,则在单击确定按钮时添加此项

        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
    

    【讨论】:

      【解决方案2】:

      假设您正在查看天气节目XYZActivity

      只需在你的按钮点击中写下这个

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

      下次启动 XYZActivity 之前检查一下。

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

      【讨论】:

        猜你喜欢
        • 2011-12-18
        • 1970-01-01
        • 2016-12-22
        • 1970-01-01
        • 2016-09-03
        • 2018-08-11
        • 2014-10-26
        • 2014-08-17
        相关资源
        最近更新 更多