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

Create a ListView of CheckedTextView elements where the first element is editable

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

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

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
    }
}