在我的项目中,我使用AbsListView
在ListView
中处理/创建Fragment
。它工作正常,但Android Studio检查告诉我AbsListView
需要API 11.现在我想知道用ListView
替换它是否更好,或者只是插入{{1}设置(ListView)
的位置。
Adapter
VS
private ListView mListView;
mListView.setAdapter(mAdapter);
答案 0 :(得分:1)
如果您将实例作为公共类类型(AbsListView)处理,请使用前者。 否则,使用后者。
要获取您的信息,API11
使用AbsListView
并非setAdapter
。(AbsListView
API11
需要ListView
。)
所以,我建议使用setAdapter
(ListView
的{{1}}也需要API1
)
答案 1 :(得分:0)
AbsListView是一个抽象类:
public abstract class AbsListView extends AdapterView<ListAdapter> implements TextWatcher, ViewTreeObserver.OnGlobalLayoutListener, Filter.FilterListener, ViewTreeObserver.OnTouchModeChangeListener
但是ListView是一个具体的类(可以实例化):
public class ListView extends AbsListView
来自Android文档:
AbsListView ,可用于实现项目的虚拟列表。
列表这里没有空间定义。
该类的子类可以在以下位置显示列表的内容:
但是:
ListView 显示一个可垂直滚动的视图集合。
每个视图都位于列表中上一个视图的紧下方。
因此可以将您的列表定义为AbsListView并动态选择如何将 View 实现为ListView,GridView等。
private AbsListView mListView;
但是要 setAdapter 时。您必须将其初始化为实例化视图,例如ListView:
mListView = new ListView();
或:
mListView = (ListView) findViewById(R.id.list_view);
mListView.setAdapter(mAdapter);