当前位置: 首页 > 面试题库 >

什么是ArrayAdapter getView()方法中的“ convertView”参数

周翰池
2023-03-14
问题内容

有人可以告诉我convertView参数getView()Adapter类的方法中用于什么吗?

这是从此处获取的示例代码:

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    View v = convertView;
    if (v == null) {
        LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        v = vi.inflate(R.layout.row, null);
    }
    Order o = items.get(position);
    if (o != null) {
        TextView tt = (TextView) v.findViewById(R.id.toptext);
        TextView bt = (TextView) v.findViewById(R.id.bottomtext);
        if (tt != null) {
            tt.setText("Name: "+o.getOrderName());                            }
        if(bt != null){
            bt.setText("Status: "+ o.getOrderStatus());
        }
    }
    return v;
}

我们应该经过convertView什么?

我发现的是,从这里获取:

获取一个在数据集中指定位置显示数据的视图。您可以手动创建视图,也可以从XML布局文件中对其进行充气。当视图膨胀时,父视图(GridView,ListView
…)将应用默认布局参数,除非您使用inflate(int,android.view.ViewGroup,boolean)指定根视图并防止附加到根。

参量

position- 项目在适配器所需的数据集中的位置(我们想要其视图)。

convertView- 尽可能重用的旧视图
注意:使用前,您应检查此视图是否为非null并具有适当的类型。如果无法转换此视图以显示正确的数据,则此方法可以创建一个新视图。

parent- 此视图最终将附加到的父项Return

返回 -与指定位置的数据相对应的View。


问题答案:

您不应该自己调用该方法。

Android
ListView使用Adapter来填充Views。当ListView所示,它开始打电话getView()来填充自己。当用户滚动时,应创建一个新视图,因此为了提高性能,它会ListView发送Adapter一个旧视图,该旧视图在convertView参数中已不再使用。



 类似资料:
  • Pandas DataFrame有一个重命名方法,它使用一个名为“index”的参数。我不理解文档中对参数的描述:DataFrame.rename 具体来说,我使用它就像文档网页上的示例: 我理解结果,但我不明白为什么要设置。 参数用于什么?为什么示例设置了?

  • 问题内容: 我刚刚开始用Java编写程序。以下Java代码是什么意思? What is String[] args? When would you use these args? 源代码和/或示例优先于抽象解释 问题答案: 在Java中,包含提供的命令行参数作为对象数组。 换句话说,如果你运行你的程序作为然后将包含。 如果要输出的内容,可以像这样遍历它们…

  • 问题内容: 例: 第一个参数采用Double并将其保存在该方法范围中。但是,什么是和? 我阅读了这篇文章,却找不到任何相关内容:https : //developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Methods.html 问题答案: 这就是Swift模仿目标C的命名参

  • 问题内容: 我想知道为什么当描述为char时indexOf方法的参数为int。 public int indexOf(int ch) http://download.oracle.com/javase/1,5.0/docs/api/java/lang/String.html#indexOf%28int%29 a]基本上,我感到困惑的是java中的int是32位,而unicode字符是16位。 b]

  • 问题内容: 这些方法之间在功能上有区别吗? 编辑(从其他贡献者添加了此语法): 问题答案: 不,但第一个是首选样式。 编辑: 另一个选项是 此外,它还允许调用者使用varargs语法。

  • 问题内容: 为什么Java中的main方法总是需要参数?为什么我们每次都要写,而不是在使用任何参数时才写? 这样的方法会生成编译器错误。由于我们从不对main方法使用任何参数,因此应允许这样做。 这不是面试问题。编程时才想到。 问题答案: 基本上,有四个答案: 因为那是它的设计方式。是的,我知道这是一个循环的原因。但是关键是这就是它的样子,并且不会改变。因此,除非您打算设计自己的语言,否则这个问题