スピナーが2つあります。データベースからスピナーデータを読み込んでいます。最初のスピナーでアイテムを選択すると、そのアイテムに応じて、2番目のスピナーが対応するデータを読み込む必要があります。たとえば、最初のスピナーで野菜を選択した場合、2番目に野菜の名前のみが表示されます。 1番目に果物を選択すると、2番目に果物の名前が表示されます.1番目のスピナーで選択したアイテムをカスタマイズされたスピナークラスに渡すにはどうすればよいですか?私はそのアイテムを渡そうとしましたが、2番目のスピナーのすべての行で空白になりました。これが私のコードです
// Spinner click listener
spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> paramAdapterView,
View paramView, int paramInt, long paramLong) {
// TODO Auto-generated method stub
label = paramAdapterView.getItemAtPosition(paramInt)
.toString();
deviceID = paramInt;
loadSpinnerData1(label);
}
private void loadSpinnerData1(String type) {
// database handler
DatabaseHandler db = new DatabaseHandler(getApplicationContext());
//getting the spinner item depending on what item selected in 1st spinner
List<String> manuft = db.getAllManuft(type);
spinner1.setAdapter(new MyAdapter1(OptionsActivity.this, R.layout.row, manuft,type));
}
私のカスタムスピナークラス
public class MyAdapter1 extends ArrayAdapter<String>{
public MyAdapter1(Context context, int textViewResourceId, List<String> manuft, String type) {
super(context, textViewResourceId, manuft);
}
@Override
public View getDropDownView(int position, View convertView,ViewGroup parent) {
return getCustomView(position, convertView, parent, label);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
return getCustomView(position, convertView, parent, label);
}
public View getCustomView(int position, View convertView, ViewGroup parent, String type) {
DatabaseHandler db = new DatabaseHandler(getApplicationContext());
List<String> manuft = db.getAllManuft(type);
LayoutInflater inflater=getLayoutInflater();
View row=inflater.inflate(R.layout.row, parent, false);
TextView label=(TextView)row.findViewById(R.id.device);
for(int i=0;i<manuft.size();i++){
label.setText(manuft.get(position));
}
return row;
}
}