Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从previus活动中获得陈述_Android_Checkbox - Fatal编程技术网

Android 从previus活动中获得陈述

Android 从previus活动中获得陈述,android,checkbox,Android,Checkbox,我有两个活动,活动A和活动B 活动A有一个复选框和一个按钮 我想做的是当我点击活动按钮时,活动就会开始 根据活动的不同,复选框状态文本视图可见或消失 下面是一个示例代码 public class Main extends Activity { public static CheckBox check1; private Button Button1; CheckBox check1 = (CheckBox)findViewById(R.id.checkB

我有两个活动,活动A和活动B 活动A有一个复选框和一个按钮

我想做的是当我点击活动按钮时,活动就会开始 根据活动的不同,复选框状态文本视图可见或消失

下面是一个示例代码

        public class Main extends Activity {
    public static CheckBox check1;
        private Button Button1;

CheckBox check1 = (CheckBox)findViewById(R.id.checkBox1);
Button1 = (Button) findViewById(R.id.button1);


button1.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {

final Intent i = new Intent(this, Activity_A.class);

    startActivity(i);

            }
        });
活动

 Textview1 = (TextView)findViewById(R.id.textView1);

  if (Main.check1.isChecked())

        {
                  //code here

}
问题是,当我单击if语句的Activity\u a按钮时,我得到了一个NullPointerExeption


有什么想法吗?提前感谢

这样做吧

调用“活动”时发送复选框的值。然后从第二个“活动”中检索该值并相应地进行操作

final Intent i = new Intent(this, Activity_A.class);
    i.putExtras("value",""+check1.isChecked());//sending checked value to next activity
    startActivity(i);





Textview1 = (TextView)findViewById(R.id.textView1);
Bundle bundle = getIntent().getExtras();
 boolean ok=Boolean.parseBoolean(bundle.getString("value"));

  if (ok) //checkbox is checked in previous activity   
        {
               //code here
        }

假设您没有发布所有内容(此代码不会编译),看起来您将check1分配给了一个局部变量

CheckBox check1 = (CheckBox)findViewById(R.id.checkBox1);
而不是您的静态类变量

public static CheckBox check1;

因此,当您在
Activity\u B
中引用
Main.check1时,它仍然是空的。然而,无论如何,这仍然是一种在两个活动之间共享状态的糟糕方式,因为您正在泄漏UI元素。为什么不将布尔值作为捆绑的额外值提交,这是启动
活动的意图的一部分,或者在按钮侦听器中设置一个静态布尔变量?两者都是更好、更容易的选择。

我还认为,通过将意图从第一个活动传递到第二个活动,可以纠正这一错误

final Intent i = new Intent(this, Activity_A.class);
i.putExtras("value",""+check1.isChecked());//sending checked value to next activity
startActivity(i);` 
把这个写在第一个活动中

Textview1 = (TextView)findViewById(R.id.textView1);
Bundle bundle = getIntent().getExtras();
boolean ok=Boolean.parseBoolean(bundle.getString("value"));

if (ok) //checkbox is checked in previous activity   
    {
           //code here
    }` 
将此写在第二个活动中

final Intent i = new Intent(this, Activity_A.class);
i.putExtras("value",""+check1.isChecked());//sending checked value to next activity
startActivity(i);`