アクティビティで実行している 4 つのスピナーで選択された位置の int 値を取得したいと考えています。Int 値を取得したら、この値に基づいてループし、ファイルを SDCARD に書き出し、IE spinner1 項目 4 を選択して、SD カードにテキスト ファイル 1、2、3、4 を生成します。
ユーザーが各スピナーをクリックした場所の int 値を取得する方法がわかりませんが、イメージボタンが選択されたときに値を「収集」したいのですが、現在これが私のコードです。
//used to track spinner value
public int spinner1 = 0;
public int spinner2 = 0;
public int spinner3 = 0;
public int spinner4 = 0;
etnumber1 = (Spinner) findViewById(R.id.etnumber1);
etnumber2 = (Spinner) findViewById(R.id.etnumber2);
etnumber3 = (Spinner) findViewById(R.id.etnumber3);
etnumber4 = (Spinner) findViewById(R.id.etnumber4);
etnumber1.setOnItemSelectedListener(this);
etnumber2.setOnItemSelectedListener(this);
etnumber3.setOnItemSelectedListener(this);
etnumber4.setOnItemSelectedListener(this);
}//end of oncreate
public void onClick(View v) {
if (v==imagerun) {
for (int i=1; i<spinner1; i++){
//primary callsign
Toast.makeText(getBaseContext(), String.valueOf(i),
Toast.LENGTH_SHORT).show();
String fileName = String.valueOf(i) +".txt";
File myFile = new File("/sdcard/.working/" +fileName);
myFile.createNewFile();
FileOutputStream fOut = new FileOutputStream(myFile, false);
OutputStreamWriter myOutWriter =
new OutputStreamWriter(fOut);
myOutWriter.append(etpri1.getText());
myOutWriter.append(" ");
myOutWriter.append(String.valueOf(i));
myOutWriter.close();
fOut.close();
}
}
catch (Exception e) {
Toast.makeText(getBaseContext(), e.getMessage(),
Toast.LENGTH_SHORT).show();
}
}//end onclick
public void onItemSelected(AdapterView<?> parent, View view1, int pos,
long id) {
// TODO Auto-generated method stub
spinner1=etnumber1.getSelectedItemPosition(); // primary number
spinner2=etnumber2.getSelectedItemPosition(); //secondary
spinner3=etnumber3.getSelectedItemPosition(); //primary number
spinner4=etnumber4.getSelectedItemPosition(); //secondary number
}
私は明らかにこれを間違っています。多くのチュートリアルに従おうとしましたが、それらはすべて単一のスピナーから文字列値を取得することを参照しています。申し訳ありませんが、これはおそらく単純な要求ですが、私は一日中これに頭を悩ませてきました!
助けてくれてありがとう。