在自定义列表数组适配器中追加数据
Append Data in Custom list arrayadapter
我有一个带有图像的自定义列表 arrayadapter.I 需要向该列表添加一些新数据 arrayadapter.I 试图通过
添加数据
your_array_list.add("foo");
your_array_list.add("bar");
但这不起作用帮助我将数据添加到列表视图
这是我的适配器class
public ApplicationAdapter(Context context, int textViewResourceId,
List<ApplicationInfo> appsList) {
super(context, textViewResourceId, appsList);
this.context = context;
this.appsList = appsList;
packageManager = context.getPackageManager();
}
@Override
public int getCount() {
return ((null != appsList) ? appsList.size() : 0);
}
@Override
public ApplicationInfo getItem(int position) {
return ((null != appsList) ? appsList.get(position) : null);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
if (null == view) {
LayoutInflater layoutInflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = layoutInflater.inflate(R.layout.snippet_list_row, null);
}
ApplicationInfo data = appsList.get(position);
if (null != data) {
TextView appName = (TextView) view.findViewById(R.id.app_name);
TextView packageName = (TextView) view.findViewById(R.id.app_paackage);
ImageView iconview = (ImageView) view.findViewById(R.id.app_icon);
appName.setText(data.loadLabel(packageManager));
packageName.setText(data.packageName);
iconview.setImageDrawable(data.loadIcon(packageManager));
}
return view;
}
这是我的 activity 代码
applist = checkForLaunchIntent(packageManager.getInstalledApplications(PackageManager.GET_META_DATA));
;
ApplicationAdapter listadaptor = new ApplicationAdapter(AllAppsActivity.this,
R.layout.snippet_list_row, applist);
如果第一次初始化:
applist.add("foo");
ApplicationAdapter listadaptor = new ApplicationAdapter(AllAppsActivity.this,R.layout.snippet_list_row, applist);
稍后如果您愿意添加数据:
applist.add("foo");
listadaptor.notifyDataSetChanged();
从你的代码中我看到,作为你的适配器的参数,你给出了一个对象列表 (List<ApplicationInfo>
),所以你需要添加一个 [=15 而不是添加字符串 applist.add("foo")
=] 对象类似于:
ArrayList<ApplicationInfo> yourList = new ArryList<>();
yourList.add(applist);
我有一个带有图像的自定义列表 arrayadapter.I 需要向该列表添加一些新数据 arrayadapter.I 试图通过
添加数据your_array_list.add("foo");
your_array_list.add("bar");
但这不起作用帮助我将数据添加到列表视图
这是我的适配器class
public ApplicationAdapter(Context context, int textViewResourceId,
List<ApplicationInfo> appsList) {
super(context, textViewResourceId, appsList);
this.context = context;
this.appsList = appsList;
packageManager = context.getPackageManager();
}
@Override
public int getCount() {
return ((null != appsList) ? appsList.size() : 0);
}
@Override
public ApplicationInfo getItem(int position) {
return ((null != appsList) ? appsList.get(position) : null);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
if (null == view) {
LayoutInflater layoutInflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = layoutInflater.inflate(R.layout.snippet_list_row, null);
}
ApplicationInfo data = appsList.get(position);
if (null != data) {
TextView appName = (TextView) view.findViewById(R.id.app_name);
TextView packageName = (TextView) view.findViewById(R.id.app_paackage);
ImageView iconview = (ImageView) view.findViewById(R.id.app_icon);
appName.setText(data.loadLabel(packageManager));
packageName.setText(data.packageName);
iconview.setImageDrawable(data.loadIcon(packageManager));
}
return view;
}
这是我的 activity 代码
applist = checkForLaunchIntent(packageManager.getInstalledApplications(PackageManager.GET_META_DATA));
;
ApplicationAdapter listadaptor = new ApplicationAdapter(AllAppsActivity.this,
R.layout.snippet_list_row, applist);
如果第一次初始化:
applist.add("foo");
ApplicationAdapter listadaptor = new ApplicationAdapter(AllAppsActivity.this,R.layout.snippet_list_row, applist);
稍后如果您愿意添加数据:
applist.add("foo");
listadaptor.notifyDataSetChanged();
从你的代码中我看到,作为你的适配器的参数,你给出了一个对象列表 (List<ApplicationInfo>
),所以你需要添加一个 [=15 而不是添加字符串 applist.add("foo")
=] 对象类似于:
ArrayList<ApplicationInfo> yourList = new ArryList<>();
yourList.add(applist);