Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 根据打开的活动按钮更改操作?_Java_Android_Button - Fatal编程技术网

Java 根据打开的活动按钮更改操作?

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

我正在尝试制作一个向用户提问数学问题的应用程序。我有许多按钮,如乘法、加法等。我希望我的代码有一系列if/else语句,根据在上一个活动中单击的按钮告诉它要使用什么运算符


我使用什么来访问这些信息?

只需将按钮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?
对不起!新来的:)对不起!此处新增:)