如何检查用android点击哪个按钮?

时间:2016-04-24 17:55:25

标签: java android oop

我有2个活动,第一个活动包括两个按钮,第二个活动还包括2个按钮。当我点击第一个活动的第一个按钮时,我需要第二个活动开始,第二个活动的第一个按钮变为"隐形"和第二个按钮"可见"。再次,如果用户回到第一个活动并单击第二个按钮,则第二个活动开始,第二个按钮变为"不可见"第一个"可见"。

我只需要知道如何确定用户按下第一个活动中的哪个按钮。有没有具体的方法,或者有什么方法?

我尝试在第一个活动中将变量(int i)设置为全局变量,如果用户单击第一个按钮,则此(i)更改为1(相同的东西到第二个按钮),并设置第二个活动中的一个条件,将此(i)变量称为:

MainActivity a=new MainActivity();
         if(a.i==0){
              //do this
         }
         else if(a.i==1){
              //do this
         }

但这不起作用,第二个活动总是得到这个(i),因为它等于(0)。

5 个答案:

答案 0 :(得分:1)

您应该使用Intent开始第二项活动。对于此Intent,您可以放置​​一些参数。 在您的第一个活动中:

Button b1 = (Button)findViewById(R.id.button1);
Button b2 = (Button)findViewById(R.id.button2);
// Set OnClickListeners
b1.setOnClickListener(new View.OnClickListener() {
   @Override
   public void onClick(View view) {
       // Start Activity
       Intent intent = new Intent(this, Activity2.class);
       intent.putExtra("buttontohide", 0); // Hide Button 0
       startActivity(intent);
   }
});

b2.setOnClickListener(new View.OnClickListener() {
   @Override
   public void onClick(View view) {
       // Start Activity
       Intent intent = new Intent(this, Activity2.class);
       intent.putExtra("buttontohide", 1); // Hide Button 1
       startActivity(intent);
   }
});

在你的第二个活动中:

Intent myIntent = getIntent();
int i = myIntent.getExtras().getInt("buttontohide");

答案 1 :(得分:0)

您可以在开始第二个活动之前将参数传递给extra。用它告诉第二个活动点击了哪个按钮。在第二个活动的onCreate()方法中,分析额外以定义必须隐藏的按钮。

答案 2 :(得分:0)

MainActivity a = new MainActivity();

您正在再次初始化Activity。但在您的情况下,请改为使用static变量。

做这样的事情。

MainActivity.java声明static变量

public class MainActivity extends Activity {
  public static int a = 0;
  // Rest of your code
}

现在从第二个活动检查值是0还是1,如此

public class SecondActivity extends Activity {
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    ...
    if(MainActivity.a == 0) { /*Do something*/ }
    else { /*Do something*/ }  
  }
}

答案 3 :(得分:0)

我假设您知道所有代码如何使按钮可见和不可见。首先在你的第一个活动中声明一个int变量,然后使用getIntent将其传递给第二个活动,然后使用if else逻辑捕获你的变量值,并将你的代码设置为使按钮不可见。

答案 4 :(得分:0)

您可以使用Bundle将数据从活动A传递到活动B:

在活动A中:

... onClick() {
    ...

    Intent intent = new Intent(this, ActivityB.class);
    intent.putExtra("ButtonNR", iButtonNR);

    startActivity(intent);
}

在活动B中:

public class ActivityB extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        ...

        Bundle bundle = getIntent().getExtras();
        int iButtonNR = bundle.getInt("ButtonNR");

        switch (iButtonNR) {
            case 0:
                //do something...
                break;
            case 1:
                //do another thing...
                break;
        }
  }
}