Java 根据打开的活动按钮更改操作?
我正在尝试制作一个向用户提问数学问题的应用程序。我有许多按钮,如乘法、加法等。我希望我的代码有一系列if/else语句,根据在上一个活动中单击的按钮告诉它要使用什么运算符Java 根据打开的活动按钮更改操作?,java,android,button,Java,Android,Button,我正在尝试制作一个向用户提问数学问题的应用程序。我有许多按钮,如乘法、加法等。我希望我的代码有一系列if/else语句,根据在上一个活动中单击的按钮告诉它要使用什么运算符 我使用什么来访问这些信息?只需将按钮id放在意图中即可。像这样, Intent i=new Intent(context,MyActivity.class); i.putExtra("button_id", buttonID); context.startActivity(i);` 然后在你的活动中 Intent I =ge
我使用什么来访问这些信息?只需将按钮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");
只需将按钮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()方法捕获
extraValue = getIntent().getIntExtra("EXTRA_NAME", -1); // here -1 is default value.
例如:
在您的第一个活动中:
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;
}
}
在第二项活动中:
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;
}
}
}新的活动总是由一个意图开始的。如果我们想用一些信息来启动一项活动,我们可以在用于启动它的意图中加入相同的信息。此意图可由已启动活动中的getIntent()方法捕获
extraValue = getIntent().getIntExtra("EXTRA_NAME", -1); // here -1 is default value.
例如:
在您的第一个活动中:
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;
}
}
在第二项活动中:
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;
}
}
}您始终可以使用Extra将参数传递给活动,并根据其值执行某些操作
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.
始终可以使用Extra将参数传递给活动,并根据其值执行某些操作
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.
您是否使用了多个活动?。这似乎是一个关于构建简单android计算器的有用教程app@Anil我有两个活动-一个是乘法/加法按钮,另一个是提问。我希望能够对所有不同类型的操作使用相同的活动,只需稍微修改Java即可。因此,您想知道在第二个活动中,第一个活动中按下了哪个按钮是的,是的,您使用了多个活动吗?。这似乎是一个关于构建简单android计算器的有用教程app@Anil我有两个活动-一个是乘法/加法按钮,另一个是提问。我希望能够对所有不同类型的操作使用相同的活动,只需稍微修改Java即可。因此,在第二个活动中,您想知道第一个活动中按下了哪个按钮是正确的
getExtras().getInt()
与getIntExtra?
getExtras().getInt()
与getIntExtra?
对不起!新来的:)对不起!此处新增:)