ArrayAdapter 初始化不清除
ArrayAdapter Initializing not Clear
我正在尝试通过触发隐式意图创建一个列表,其中包含 Phone 上所有可用应用程序的名称。作为 android 的初学者,我正在学习一本书中的教程。我之前通过扩展 ArrayAdapter 创建了自定义适配器,但我不清楚这个简单的 ArrayAdapter 的语法。这是:
ArrayAdapter<ResolveInfo> adapter = new ArrayAdapter<ResolveInfo> (getActivity(),android.R.layout.activity_list_item,activities)
{
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
View v = super.getView(position, convertView, parent);
TextView tv = (TextView)v;
ResolveInfo ri = getItem (position);
tv.setText(ri.loadLabel(pm));
return v;
}
};
1- 为什么在调用ArrayAdapter 的构造函数后在括号内调用getView 方法?
2- 这是某种匿名 class 结构吗?
3- 这实际上是 ResolveInfo 对象类型的自定义适配器吗?
任何帮助将不胜感激。谢谢
getView(int position, View convertView, ViewGroup parent)
在括号内被调用,因为你正在构建一个new
数组适配器,因此必须为适配器提供所需的方法。
是的,就是这样
是的,您正在为对象 ResolveInfo 的数组创建自定义 ArrayAdapter
,
我假设您之前通过实现自己的 Java Class 文件扩展了 ArrayAdapter Class,这本质上是在做同样的事情。实现您自己的 Java Class 文件的好处是您可以在项目的任何地方使用相同的 ArrayAdapter
。但是,如果这是您唯一需要此适配器的地方,那么以这种方式实现它可能会更好。
我正在尝试通过触发隐式意图创建一个列表,其中包含 Phone 上所有可用应用程序的名称。作为 android 的初学者,我正在学习一本书中的教程。我之前通过扩展 ArrayAdapter 创建了自定义适配器,但我不清楚这个简单的 ArrayAdapter 的语法。这是:
ArrayAdapter<ResolveInfo> adapter = new ArrayAdapter<ResolveInfo> (getActivity(),android.R.layout.activity_list_item,activities)
{
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
View v = super.getView(position, convertView, parent);
TextView tv = (TextView)v;
ResolveInfo ri = getItem (position);
tv.setText(ri.loadLabel(pm));
return v;
}
};
1- 为什么在调用ArrayAdapter 的构造函数后在括号内调用getView 方法?
2- 这是某种匿名 class 结构吗?
3- 这实际上是 ResolveInfo 对象类型的自定义适配器吗?
任何帮助将不胜感激。谢谢
getView(int position, View convertView, ViewGroup parent)
在括号内被调用,因为你正在构建一个new
数组适配器,因此必须为适配器提供所需的方法。是的,就是这样
是的,您正在为对象 ResolveInfo 的数组创建自定义
ArrayAdapter
,
我假设您之前通过实现自己的 Java Class 文件扩展了 ArrayAdapter Class,这本质上是在做同样的事情。实现您自己的 Java Class 文件的好处是您可以在项目的任何地方使用相同的 ArrayAdapter
。但是,如果这是您唯一需要此适配器的地方,那么以这种方式实现它可能会更好。