【问题标题】:What is is the difference between ArrayList.get(int index) and ArrayAdapter.getItem(int position) methods?ArrayList.get(int index) 和 ArrayAdapter.getItem(int position) 方法有什么区别?
【发布时间】:2017-03-11 17:55:01
【问题描述】:

我正在设置一个OnItemClickListener,但我看不出这两种方法之间的区别,它们都工作得很好,我无法从文档中理解它们之间的区别。

【问题讨论】:

    标签: java android generics arraylist android-arrayadapter


    【解决方案1】:

    它们是在不同的类上定义的——这是唯一的区别。

    适配器方法调用另一个。

    ArrayAdapter<T> Android Source code.

    public T getItem(int position) {
        return mObjects.get(position);
    }
    

    您实际上并不“需要”在您的班级中独立存储 Arraylist。

    ArrayAdapter 有自己的add() 方法,您调用不带列表的构造函数。

    public ArrayAdapter(@NonNull Context context, @LayoutRes int resource) {
        this(context, resource, 0, new ArrayList<>());
    }
    

    【讨论】:

      【解决方案2】:

      主要区别在于适配器更适合在 UI 中显示信息。因此,如果你必须在 ListView 中显示列表,你可以只使用适配器。

      主要优点是您不必同时管理列表和适配器,并且 UI 将随着数组的更新而更新。但是,您可能需要致电

      adapter.notifyDataSetChanged();
      

      在某个时候刷新 UI。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-05-05
        • 2015-11-04
        • 1970-01-01
        • 1970-01-01
        • 2014-10-20
        • 2017-02-23
        • 1970-01-01
        相关资源
        最近更新 更多