[英]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.