表題の通り、押されたボタンを判断したいです。
以下のようにボタンに違う変数名を振り分け、それぞれにリスナーをセットすると判定はできます。
package com.example.threebutton; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.LinearLayout; public class MainActivity extends AppCompatActivity { int choice_button_num = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); LinearLayout linearLayout = new LinearLayout(this); linearLayout.setOrientation(LinearLayout.VERTICAL); setContentView(linearLayout); Button first_button = new Button(this); Button second_button = new Button(this); Button three_button = new Button(this); linearLayout.addView(first_button); linearLayout.addView(second_button); linearLayout.addView(three_button); first_button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { choice_button_num = 1; Intent intent = new Intent(MainActivity.this,NextActivity.class); intent.putExtra("NUM",choice_button_num); startActivity(intent); } }); second_button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { choice_button_num = 2; Intent intent = new Intent(MainActivity.this,NextActivity.class); intent.putExtra("NUM",choice_button_num); startActivity(intent); } }); three_button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { choice_button_num = 3; Intent intent = new Intent(MainActivity.this,NextActivity.class); intent.putExtra("NUM",choice_button_num); startActivity(intent); } }); } }
ただ、今回私は後述するソースのように、Button型の変数buttonを宣言した後、button = new Button(this)を3回実行することでボタンを3つ生成しています。
そうしたときにどのように押されたボタンを判定すればいいのか知りたくご質問させて頂きました。
以下、ソースコードです。
package com.example.multiplebutton; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.Gravity; import android.view.View; import android.widget.Button; import android.widget.LinearLayout; public class MainActivity extends AppCompatActivity { Button button; int choice_button_num = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); LinearLayout linearLayout = new LinearLayout(this); linearLayout.setOrientation(LinearLayout.VERTICAL); setContentView(linearLayout); for(int i = 1; i < 4; i++) { choice_button_num = i; button = new Button(this); button.setText(String.valueOf(i)); button.setGravity(Gravity.CENTER); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this,SubActivity.class); //ここで押されたボタン番号をintentに押し込みたい。以下の方法ではどのボタンを押したときも3が渡される intent.putExtra("NUM",choice_button_num); startActivity(intent); } }); linearLayout.addView(button); } } }
以上、ご教授頂ければ幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。