我的應用程序創建一個ListView,它根據我的數組中的字符串數創建列表項。不過,我希望每個Spinner項目都能選擇適當的項目。更改由CustomAdapter創建的spinners上的文本(擴展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;
}
}
}
所以這應該創建3(因爲有在String [] 「項目」 3項)ListView的範圍內 「request_item_list_item」 的項目。
而且它有在位置0,從而每一個旋轉器(request_item_list_item的1份):
「ITEM1」
「ITEM1」
「ITEM1」
我將它想請執行以下操作:
「item1」
「ITEM2」
「項目3」
這會不會在CustomAdapter實現的呢?
BONUS問題: 如果我希望用戶能夠按下「添加按鈕」將列表項的數量增加1(這樣就會有4個request_item_list_items,5,6等)我應該使用的.add方法?或者我只是更改getCount並刷新列表(這不會很理想......如果用戶已經填寫了request_item_list_items中的信息,那麼它將在刷新時丟失所有輸入)?
試加,viewHolder.spinner.setSelection(爲arg0 )之前,「返回convertview」。 –
使您的自定義適配器和活動像這樣可能會有所幫助http://abhiandroid.com/ui/custom-spinner-examples.html –