2017-07-28 7 views
0

私はユーザーに数学の質問をするアプリを作ろうとしています。私は乗算、加算などのいくつかのボタンを持っています。前のアクティビティでどのボタンがクリックされたかに基づいて、どの演算子を使用するかを指示する一連のif/else文をコードに追加します。アクティビティを開いたボタンに基づいてアクションを変更しますか?

この情報にアクセスするにはどうすればよいですか?

+0

複数のアクティビティを使用していますか? – Anil

+1

http://www.androidauthority.com/build-a-calculator-app-721910/これは簡単なアンドロイド電卓アプリを構築する上で参考になるチュートリアルのようです –

+0

@Anil私は2つのアクティビティを持っています - 1つは乗算/ 、他の人には質問をするだけです。私は、すべての異なるタイプの操作に同じアクティビティを使用できるようにしたいと考えていました。ちょうどJavaをわずかに変更しました。 – Emma

答えて

0

ボタン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"); 
+0

ありがとう! – Emma

+0

@emma素晴らしい!回答を受け入れたものとしてマークしてください。 – lionscribe

+0

申し訳ありませんここで新しい: – Emma

0

新しいアクティビティは常にインテントによって開始されます。何らかの情報でアクティビティーを開始したい場合は、そのインテントにその情報を入れて開始することができます。このインテントは、開始アクティビティーの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; 
    } 

} 

}

2

あなたは常にエクストラ使ってあなたに活動を引数を渡すことができますその値に基づいていくつかのアクションを実行します。

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

'getExtras()。getInt()'対 'getIntExtra?' –

関連する問題