[英]Change action based on which button opened Activity?
我正在嘗試制作一個詢問用戶數學問題的應用程序。 我有許多按鈕,例如乘法,加法等。我希望我的代碼具有一系列的if / else語句,該語句根據在上一活動中單擊哪個按鈕來告訴它使用哪個運算符。
我如何使用這些信息?
您始終可以使用Extra將參數傳遞給You活動,並根據其值執行一些操作。
int extraValue = 5;
Intent i = new Intent();
i.putExtra("EXTRA_NAME", extraValue);
startActivity(i);
然后,您可以在目標活動中按名稱獲取此額外內容。
extraValue = getIntent().getIntExtra("EXTRA_NAME", -1); // here -1 is default value.
只需將按鈕ID放入意圖中即可。 像這樣;
Intent i=new Intent(context,MyActivity.class);
i.putExtra("button_id", buttonID);
context.startActivity(i);`
然后在您的活動中;
Intent I =get intent();
Int buttonID = intent.getIntExtra("button_id");
新活動始終是由意圖開始的。 如果我們想使用一些信息來啟動活動,則可以在啟動該活動的意圖中添加相同的內容。 可以通過啟動活動中的getIntent()方法捕獲此意圖。
例:
在您的第一次活動中:
intent = new Intent(MainActivity.this,SecondActivity.class);
switch(radioGroup.getCheckedRadioButtonId()){
case R.id.add:
intent.putExtra("operator","add");
startActivity(intent);
break;
case R.id.subtract:
intent.putExtra("operator","subtract");
startActivity(intent);
break;
case R.id.multiply:
intent.putExtra("operator","multiply");
startActivity(intent);
break;
case R.id.divide:
intent.putExtra("operator","divide");
startActivity(intent);
break;
}
在第二項活動中:
public class SecondActivity extends AppCompatActivity {
Intent intent;
@Override
public void onCreate(@Nullable Bundle savedInstanceState, @Nullable PersistableBundle persistentState) {
super.onCreate(savedInstanceState, persistentState);
intent = getIntent();
String operation = intent.getStringExtra("operator");
switch(operation){
case "add":
//your code
break;
case "subtract":
//your code
break;
case "multiply":
//your code
break;
case "divide":
//your code
break;
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.