java - 当可以使用旧变量时,为什么要创建并使用新变量呢?

标签 java android arrays android-arrayadapter

为什么我们需要:-

  1. 创建 View x。
  2. 然后设置 x = a
  3. 如果可以直接使用 a,则对 x 使用 if 命令。

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
    
        // check if the current view is reused else inflate the view
        View listItemView = convertView;
    
        if(listItemView == null){
            listItemView = LayoutInflater.from(getContext()).inflate(R.layout.list_item, parent, false);
        }
    

相反,为什么我们不能这样做?

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

    if(convertView == null){
        convertView = LayoutInflater.from(getContext()).inflate(R.layout.list_item, parent, false);
    }

最佳答案

第一个和第二个示例有效。仅当您要创建类变量的本地副本时才使用第一种情况。这是没有用的。开发商为何要这样做?谁知道:)

关于充气。膨胀操作有些昂贵,因为您的适配器项目是相似的,可以只膨胀 View 一次。

关于java - 当可以使用旧变量时,为什么要创建并使用新变量呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53969798/

相关文章:

c - 有什么方法可以使用 memcpy() 将值复制到特定的字符串位置?

android - 将 Web 服务数据存储到共享首选项

Android:如果可以从 list 中处理,为什么我们需要担心屏幕方向变化?

javascript - 一种采用 2 个整数值并返回数组的方法。 JavaScript

java - aws java sdk 未返回所有文件夹

java - acos 没有给出角度值?

arrays - 数组的快速索引

javascript - 如何在 Postman javascript 中从谷歌云存储(GCS)读取 zip 文件的内容

java - 是否可以从两个不同的java应用程序访问同一个Ehcache对象?

java - 合并随机数游戏中按钮的 Action 监听器