My appは、配列内の文字列の数に基づいてリストアイテムを作成するListViewを作成します。しかし、私は各Spinner項目に適切な項目を選択させたいと思います。CustomAdapter(extends BaseAdapter)によって作成されたスピナーのテキストを変更する
例:String[] items = {"item1", "item2", "item3"}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String[] items = {"item1", "item2", "item3"}
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, items);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
ListView listView = (ListView) findViewById(R.id.requestItems_listView);
listView.setAdapter(new CustomAdapter(this));
}
private class CustomAdapter extends BaseAdapter {
LayoutInflater inflater;
public CustomAdapter(Context context) {
inflater = LayoutInflater.from(context);
}
public int getCount() {
// TODO Auto-generated method stub
return items.length;
}
public Object getItem(int position) {
// TODO Auto-generated method stub
return position;
}
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
public View getView(int arg0, View convertview, ViewGroup arg2) {
ViewHolder viewHolder;
if (convertview == null) {
convertview = inflater.inflate(R.layout.request_item_list_item, null);
viewHolder = new ViewHolder();
viewHolder.spinner = (Spinner) convertview.findViewById(R.id.itemSpinner);
viewHolder.spinner.setAdapter(adapter);
convertview.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertview.getTag();
}
return convertview;
}
public class ViewHolder {
Spinner spinner;
}
}
}
は、これはリストビュー内の "request_item_list_item" 項目(文字列[] "の項目" の3つの項目があるため)3を作成すべきです。
そして、それはそう位置0における各スピナー(request_item_list_item 1部)を有する:
"ITEM1"
"ITEM1"
"ITEM1"
を私はそれを希望ただし、次の操作を実行してください:
「item1」
"ITEM2"
は "ITEM3は"
これはCustomAdapterで達成されますか?
ボーナス質問: ユーザーが「追加ボタン」を押してリストアイテムの数を1増やすことができるようにしたい場合(つまり、4つのrequest_item_list_items、5,6などが存在するように) .addメソッドを使用する必要がありますか?または単にgetCountを変更してリストをリフレッシュするだけですか(これは理想的ではありません...ユーザーがrequest_item_list_itemsの情報をすでに入力していた場合、リフレッシュ時にすべての入力が失われます)。あなたはこのようなgetView
を変更する必要がある最初の質問については
viewHolder.spinner.setSelection(arg0に、追加してください)、 "return convertview"の前。 –
このようなカスタムアダプタとアクティビティを作成すると、役立つかもしれません。http://abhiandroid.com/ui/custom-spinner-examples.html –