Мое приложение создает ListView, который создает элементы списка в зависимости от количества строк в моем массиве. Тем не менее, я бы хотел, чтобы каждый элемент Spinner имел соответствующий элемент.Измените текст на прядильщиках, созданных CustomAdapter (расширяет базовый адаптер)
Пример: 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 (потому что есть 3 пункта в строке [] "элементы") "request_item_list_item" элементов внутри ListView.
И это имеет каждый кок (1 часть request_item_list_item) в положение 0, так:
"item1"
"item1"
"item1"
Я хотел бы его однако следует отметить следующее:
"item1"
"item2"
"item3"
ли это осуществить в CustomAdapter?
BONUS Вопрос: Если бы я хотел, чтобы пользователь мог нажать кнопку «Добавить», чтобы увеличить количество элементов списка на 1 (так что было бы 4 request_item_list_items, 5, 6 и т. Д.) Есть метод .add, который я должен использовать? или я просто изменяю getCount и обновляю список (это было бы не идеально ... если пользователь уже заполнил информацию в request_item_list_items, они потеряли бы все свои входы, когда он обновится)?
Постарайся добавить, viewHolder.spinner.setSelection (arg0), перед «return convertview». –
Сделайте свой собственный адаптер и активность, как это может быть полезно http://abhiandroid.com/ui/custom-spinner-examples.html –