首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >listadapter getview函数

listadapter getview函数
EN

Stack Overflow用户
提问于 2013-08-05 13:28:10
回答 1查看 408关注 0票数 0

当我在我的ListActivity中添加setContentView时,问题就发生了。下面是我的oncreate函数:

代码语言:javascript
复制
    @Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    

    mAdapter = new MyCustomAdapter();
    for (int i = 1; i < 10; i++) {
        mAdapter.addItem("item " + i);
    }
    setListAdapter(mAdapter);
   // setContentView(R.layout.main);
}

下面是我的适配器getview函数:

代码语言:javascript
复制
   @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder holder = null;
        int type = getItemViewType(position);
        System.out.println("getView " + position + " " + convertView + " type = " + type);
        if (convertView == null) {
            holder = new ViewHolder();
            switch (type) {
                case TYPE_ITEM:
                    convertView = mInflater.inflate(R.layout.item1, null);
                    holder.textView = (TextView)convertView.findViewById(R.id.text);
                    break;
                case TYPE_SEPARATOR:
                    convertView = mInflater.inflate(R.layout.item2, null);
                    holder.textView = (TextView)convertView.findViewById(R.id.textSeparator);
                    break;
            }
            convertView.setTag(holder);
        } else {
            holder = (ViewHolder)convertView.getTag();
        }
        holder.textView.setText(mData.get(position));
        return convertView;
    }

}

当我运行代码时,我可以在logcat中看到消息:

我料到在oncreate()函数中添加SetContent(视图)代码时会出现问题,.the logcat消息如下:

当我想在线程中从网页下载img并将其绑定到listItem上时,问题原因图片首先显示在错误的位置。第一个项目将快速显示所有图片,然后更改为第一个项目的图片,其他项目显示其图片。但是当我从oncreate中删除setcontentview代码时,这个问题就消失了。需要帮助

EN

回答 1

Stack Overflow用户

发布于 2013-08-05 13:33:19

ListActivity不需要调用setContentView(layoutResId)

如果ListActivity中没有调用setConentView(),则默认布局有一个填充布局的ListView。它有自己的ID为android.R.id.listListView

如果希望创建一个显示在ListActivity中的新布局,而不仅仅是Activity,那么必须将ListView的ID设置为@android:id/list

@+id/newListView这样的自定义ID在ListActivity自己的getListAdapter()setListAdapter()等方法中不起作用。如果你想使用这些函数,你必须将ListView的ID设置为@android:id/list

有关更多信息,请参阅官方安卓开发者site

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18051094

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档