我正在尝试制作一个询问用户数学问题的应用。我有许多按钮,例如乘法,加法等。我希望我的代码有一系列if / else语句,告诉它根据上一个活动中点击了哪个按钮来使用哪个操作符。
我可以使用什么来访问此信息?
答案 0 :(得分:2)
您始终可以使用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.
答案 1 :(得分:0)
只需将按钮ID放在intent中即可。像这样;
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");
答案 2 :(得分:0)
新活动始终由意图启动。如果我们想要使用某些信息启动活动,我们可以将其用于启动它的那个intent。启动活动中的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;
}
}
}