簡體   English   中英

根據哪個按鈕打開了活動來更改操作?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM