java - Android 自定义 ListView

标签 java android

我浏览了教程并进行了搜索,但仍然无法理解,

getView(int position, View convertView, ViewGroup arg2)

方法在扩展 BaseAdapter 以在我的 android 应用程序中创建自定义 listView 时有效。因此,我无法完全按照自己的意愿编辑自定义 ListView 。

我需要知道这个方法什么时候调用以及参数的含义。

如果有人能解释下面的方法就太好了。谢谢

@Override
public View getView(int position, View convertView, ViewGroup arg2)
{

    ViewHolder holder;
    LayoutInflater inflater =  context.getLayoutInflater();

    if (convertView == null)
    {
        convertView = inflater.inflate(R.layout.listitem_row, null);                     
        holder = new ViewHolder();
        holder.txtViewTitle = (TextView) convertView.findViewById(R.id.textView1);
        holder.txtViewDescription = (TextView) convertView.findViewById(R.id.textView2);

        convertView.setTag(holder);
    }
    else
    {
        holder = (ViewHolder) convertView.getTag();                                        
    }

    holder.txtViewTitle.setText(title[position]);
    holder.txtViewDescription.setText(description[position]);



  return convertView;
}

最佳答案

当您在代码中调用 setAdapter 时,将调用

getView()。之后,当您将焦点移到列表上或选择任何项目或调用 notifyDataSetChanged() 时,您会收到 getView() 中的调用。

Position - 项目在我们想要其 View 的项目的适配器数据集中的位置。

convertView - 如果可能,要重用的旧 View 。注意:您应该在使用前检查此 View 是否为非空且类型是否合适。如果无法转换此 View 以显示正确的数据,则此方法可以创建一个新 View 。异构列表可以指定它们的 View 类型的数量,使这个 View 始终是正确的类型

ViewGroup - 此 View 最终将附加到该 View 。

关于java - Android 自定义 ListView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7038986/

相关文章:

android - Android 版本 > 7 是否支持 LD_PRELOAD?

Android 2.2 Live Streaming 不能在真实设备上运行,但可以在模拟器上运行

java - 如何理解 Java 语言规范中的 volatile 示例?

java - HtmlUnit 关闭所有窗口内存泄漏

android - 在 Kotlin 中将 ArrayList 转换为字符串的最佳方法

java - SQLite : Unique makes my database go crazy

java - 从不同设备导入后,(Eclipse Android 应用程序)项目缺少所需的库

java - 如何在运行时更改 Android 主题而不使用 recreate()?

java - 如何确定控制台窗口中是否输入了任何内容?

android - 以编程方式结束来电