簡體   English   中英

如何檢查使用Android單擊的按鈕?

[英]How to check which button is Clicked with android?

我有2個活動,第一個活動包含兩個按鈕,第二個活動也包含2個按鈕。 當我單擊第一個活動的第一個按鈕時,我需要啟動第二個活動,第二個活動的第一個按鈕變為“不可見”,第二個按鈕變為“可見”。 再次,如果用戶返回到第一個活動並單擊第二個按鈕,則第二個活動開始,其中第二個按鈕變為“不可見”,第一個按鈕變為“可見”。

我只需要知道如何確定用戶按下第一個活動中的哪個按鈕即可。 有什么具體方法,或者有什么方法嗎?

我嘗試通過在第一個活動中將變量(int i)設置為全局變量來完成此操作,如果用戶單擊第一個按鈕,則此(i)更改為1(Same Thing to Second Button),並且在第二個活動將此(i)變量稱為:

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

但這是行不通的,並且第二個活動始終獲得此(i),因為它等於(0)。

您應該使用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");

您可以在開始第二個活動之前將參數傳遞給extra。 用它告訴第二個活動單擊了哪個按鈕。 在第二個活動的onCreate()方法中,進行額外分析,以定義必須隱藏的按鈕。

 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*/ }  
  }
}

我假設您了解所有代碼,如何使按鈕可見和不可見。 首先在您的第一個活動中聲明一個int變量,然后使用getIntent將其傳遞給第二個活動,然后使用if邏輯捕獲您的變量值並放置代碼以使按鈕不可見。

您可以使用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;
        }
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM