Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/403.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
Java 如何将变量从onClick传递到另一个类_Java_Android_Class_Onclick - Fatal编程技术网

Java 如何将变量从onClick传递到另一个类

Java 如何将变量从onClick传递到另一个类,java,android,class,onclick,Java,Android,Class,Onclick,我试图将一个名为choice的变量传递给另一个类,但我不知道该怎么做,因为它在onClick中。下面是我正在尝试做的一个例子 public int choice; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //intent for fir

我试图将一个名为choice的变量传递给另一个类,但我不知道该怎么做,因为它在onClick中。下面是我正在尝试做的一个例子

public int choice;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    //intent for first button
    Button button1= (Button) findViewById(R.id.button1);
    button1.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            choice = 1;
            startActivity(new Intent(MainActivity.this,Celeb1.class));
        }
    });
    //intent for second button
    Button button2= (Button) findViewById(R.id.button2);
    button2.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            choice = 2;
            startActivity(new Intent(MainActivity.this,Celeb1.class));
        }
    });

}

在另一个类中,我想检查choice是否等于1或0,并执行一些代码。

您可以通过这种方式传递变量

Intent intent = new Intent(MainActivity.this,Celeb1.class)
intent.putExtra("choice", 1);
startActivity(intent);
在Celeb1类中,您可以使用

Bundle extras = getIntent().getExtras();
int choice= extras.getInt("choice");

在onCreate()内部,不要生成Intent的实例,而是生成Intent的对象,并将额外的值传递给类

选择=2

Intent intent = new Intent(MainActivity.this, Celeb1.class);
intent.putExtra("choice",choice);
startActivity(intent);
就这样
我是android初学者,希望能对您有所帮助。

作为方法调用中的参数,由setter完成,…谢谢,工作得很好。除了代码之外,是否还要提供一些解释?
Intent intent = new Intent(MainActivity.this, Celeb1.class);
intent.putExtra("choice",choice);
startActivity(intent);