gpt4 book ai didi

android - 我如何选择要重用的 convertview?

转载 作者:行者123 更新时间:2023-11-29 14:31:25 25 4
gpt4 key购买 nike

上下文
我想要一个包含 3 种截然不同的列表项布局的列表,因此我使我的适配器根据要显示的项目类型创建适当的 View 。
例如我想列出一些图像、文本和数字,每个都有一些标题。我知道在
public View getView(int position, View convertView, ViewGroup parent)
convertView 代表重用不再可见的 listItems View 。

问题
我如何选择 convertView 或者我如何控制我在那里得到的内容?

问题来自不同的 listItems View ,假设我的列表以图像 listItem 开头,然后是大量文本 listItems 和数字 listItems,100 个 listItems 随后是第二张图像。我假设在向下滚动列表时,(在 getView(...) 调用中)第一个不为 null 的 convertView 是带有图像的,因为我需要显示文本 listItem 或数字 listItem 的 View 我无法使用它。然后我猜想在接下来的每个 getView(...) 调用中,convertView 都是与之前调用相同的图像 listItem,因为我之前没有使用它。

未使用的文本 listItems 和数字 listItems 卡住了,滚动列表时我需要继续创建新 View ,这是我想要防止的。

最佳答案

试试这个,

@Override
public View getView(final int position, View convertview, ViewGroup parent) {
// TODO Auto-generated method stub
final ViewHolder mHolder;
if (convertview == null) {
convertview = mInflater.inflate(R.layout.list_item, null);
mHolder = new ViewHolder();
mHolder.username_Txt = (TextView) convertview
.findViewById(R.id.username_Txt);

convertview.setTag(mHolder);
} else {
mHolder = (ViewHolder) convertview.getTag();
}

try {
mHolder.username_Txt.setText("your value");


} catch (Exception e) {
// TODO: handle exception
}

return convertview;
}
private class ViewHolder {

private TextView username_Txt;

}

关于android - 我如何选择要重用的 convertview?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27099455/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com