2015-09-19 2 views
0

У меня есть активность конфигурации для AppWidget. Я хочу, чтобы пользователь выбирал существующую строку для виджета или создавал один из них, выбирая первый вариант и редактируя текст в списке.Создайте ListView элементов CheckedTextView, где первый элемент доступен для редактирования

Как изменить тип элемента только первого элемента списка на другой тип представления, который позволит пользователям вставлять собственный текст?

ответ

1

Интерфейс ListAdapter имеет два способа: getViewTypeCount() и getItemViewType(). Так что в вашем случае, они могут быть реализованы следующим образом:

@Override 
public int getViewTypeCount() { 
    return 2; 
} 

@Override 
public int getItemViewType(int position) { 
    // first position has view type == 0; all others have view type == 1 
    return position == 0 ? 0 : 1; 
} 

Что это делает убедитесь, что правильные взгляды переработаны на правильные позиции. Как только у вас есть эти методы, вы можете сделать:

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    if (position == 0) { 
     // create a custom edit view and return it 
    } else { 
     // create a selection view and return it 
    } 
} 
+0

Я вижу. Таким образом, нет способа сделать это, не создавая собственный адаптер? – Derongan

+0

Ну, вы сказали «ListView». Вам не нужно иметь адаптер, если у вас есть, скажем, «LinearLayout», и создайте и добавьте каждый элемент в него ... –

+0

Я просто надеялся, что есть способ сделать такие вещи уже в Класс адаптера. Android, похоже, действительно хочет, чтобы вы расширили существующие классы. – Derongan

Смежные вопросы