创建CheckedTextView元素的ListView,其中第一个元素是可编辑的

时间:2015-09-19 02:51:04

标签: android android-listview android-appwidget

我有一个AppWidget的配置活动。我想让用户为窗口小部件选择现有字符串,或者通过选择第一个选项并编辑列表中的文本来创建自己的字符串。

如何将第一个列表项的元素类型更改为允许用户插入自定义文本的其他类型的视图?

1 个答案:

答案 0 :(得分: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
    }
}