■現状
Androidのアプリを制作しています。
■実現したいこと
複数項目あるspinnerから共通のsetOnItemSelectedListenerを使って選択された値を取り出したい。
■問題
https://teratail.com/questions/75461
上記などを参考に作成しているのですが、
spinnerNum.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
spinnerDice.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
この部分をspinnerなどに変えようとするとエラーになります。
Java
1public class MainActivity extends AppCompatActivity { 2 3 private int DiceMaxNum = 10; 4 private String[] diceItems = {"d3","d4","d6","d8","d10","d12","d20","d100"}; 5 private String[] diceNums = new String[DiceMaxNum]; 6 7 private TextView textView; 8 9 @Override 10 protected void onCreate(Bundle savedInstanceState) { 11 super.onCreate(savedInstanceState); 12 setContentView(R.layout.activity_main); 13 textView = findViewById(R.id.text_view); 14 15 16 Spinner spinnerNum = findViewById(R.id.spinnerNum); 17 Spinner spinnerDice = findViewById(R.id.spinnerDice); 18 19 20 // ダイスの数 21 for(int i = 0;i<DiceMaxNum;i++){ 22 diceNums[i] = Integer.toString(i+1); 23 } 24 25 // ArrayAdapter 26 ArrayAdapter<String> adapterNum 27 = new ArrayAdapter<>(this, 28 android.R.layout.simple_spinner_item, diceNums); 29 adapterNum.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 30 spinnerNum.setAdapter(adapterNum); 31 32 // ダイスの種類 33 34 // ArrayAdapter 35 ArrayAdapter<String> adapterDice 36 = new ArrayAdapter<>(this, 37 android.R.layout.simple_spinner_item, diceItems); 38 39 adapterDice.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 40 spinnerDice.setAdapter(adapterDice); 41 42 // リスナーを登録 43 spinnerNum.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 44 // アイテムが選択された時 45 @Override 46 public void onItemSelected(AdapterView<?> parent, 47 View view, int position, long id) { 48 Spinner spinner = (Spinner)parent; 49 String item = (String)spinner.getSelectedItem(); 50 textView.setText(item); 51 } 52 53 // アイテムが選択されなかった 54 public void onNothingSelected(AdapterView<?> parent) { 55 // 56 } 57 }); 58 59 // リスナーを登録 60 spinnerDice.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 61 // アイテムが選択された時 62 @Override 63 public void onItemSelected(AdapterView<?> parent, 64 View view, int position, long id) { 65 Spinner spinner = (Spinner)parent; 66 String item = (String)spinner.getSelectedItem(); 67 textView.setText(item); 68 } 69 // アイテムが選択されなかった 70 public void onNothingSelected(AdapterView<?> parent) { 71 // 72 } 73 }); 74
回答1件
あなたの回答
tips
プレビュー