ユーザーが編集テキストに数字を入力すると、アプリはその数のスピナーを作成して表示します。次に、ユーザーは各スピナーからアイテムを選択し、保存ボタンをクリックします。インターネットで調べましたが、スピナーから位置を取得する方法を見つけることができませんでした。スピナーの作成方法は次のとおりです。
//numStockTanks is the number of spinners to be created
numStockTanks = Integer.parseInt(numOfStockTanks.getText().toString());
// creates all the fields
for(int i = 1; i <= numStockTanks; i++) {
TableRow tR = new TableRow(this);
// creates the textView
tV1 = new TextView(this);
tV1.setText("Stock Tank #" + i + " size: ");
// add spinner to row
spinner = new Spinner(this);
ArrayAdapter<CharSequence> adapterStockTankSize2 = ArrayAdapter.createFromResource(
this, R.array.StockTankSize, android.R.layout.simple_spinner_item);
adapterStockTankSize2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapterStockTankSize2);
spinner.setId(1000 + i);
// add the TextView and the editText to the new TableRow
tR.addView(tV1);
tR.addView(spinner);
// add the TableRow to the TableLayout
tL.addView(tR,new TableLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
} // end for statement
} // end getNumberCreateSpinner ()
スピナーの位置を取得するためにいくつかの異なる方法を試みましたが、理解できないようです。これが私が現在持っているものです:
ArrayList<Integer> mArraySpinner = new ArrayList<Integer>();
for (int i = 0; i < numStockTanks; i++) {
spinner = (Spinner) findViewById(1000 + i);
if (spinner.getSelectedItemPosition() == 1) {
mArraySpinner.add(100);
} else if (spinner.getSelectedItemPosition() == 2) {
mArraySpinner.add(200);
} else if (spinner.getSelectedItemPosition() == 3) {
mArraySpinner.add(210);
} else if (spinner.getSelectedItemPosition() == 4) {
mArraySpinner.add(295);
} else if (spinner.getSelectedItemPosition() == 5) {
mArraySpinner.add(400);
} else mArraySpinner.add(0);
} // end for statement
ご協力いただきありがとうございます
編集:最初の回答の後に私の最新の試みに更新
編集編集:「spinner = (Spinner) findViewById(1000 + i);」という行をデバッグすると nullと表示されているので、スピナーを正しく指していないことがわかります。これは私が助けを必要としているものです
編集:バンプ