【发布时间】:2017-07-10 05:13:22
【问题描述】:
我有一个包含带有开关按钮的列表视图的应用程序,当开关启动时我想要从列表视图中删除项目,我尝试了很多但无法删除项目。请帮助。
适配器代码:-
private LayoutInflater layoutInflater;
private List<AppList> listStorage;
private Context mContext;
public AppAdapter(Context context, List<AppList> customizedListView) {
layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
listStorage = customizedListView;
this.mContext = context;
}
@Override
public int getCount() {
return listStorage.size();
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder listViewHolder;
if (convertView == null) {
listViewHolder = new ViewHolder();
convertView = layoutInflater.inflate(R.layout.installed_app_list, parent, false);
listViewHolder.textInListView = (TextView) convertView.findViewById(R.id.list_app_name);
listViewHolder.imageInListView = (ImageView) convertView.findViewById(R.id.app_icon);
listViewHolder.switchCompat = (SwitchCompat) convertView.findViewById(R.id.toggleButton);
convertView.setTag(listViewHolder);
} else {
listViewHolder = (ViewHolder) convertView.getTag();
}
listViewHolder.textInListView.setText(listStorage.get(position).getName());
listViewHolder.imageInListView.setImageDrawable(listStorage.get(position).getIcon());
listViewHolder.switchCompat.setTag(position);
listViewHolder.switchCompat.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
listStorage.get(position).getPackName();
//here i want to remove item from listview
} else {
Toast.makeText(mContext, "Off", Toast.LENGTH_LONG).show();
}
}
});
return convertView;
}
static class ViewHolder {
SwitchCompat switchCompat;
TextView textInListView;
ImageView imageInListView;
}
}
【问题讨论】:
-
从 listStorage 中删除项目:listStorage.get(position).remove();之后调用 notifyDataSetChanged
-
remove() 中显示“无法解析方法”
-
我正在扩展 BaseAdapter
-
listStorage.remove(位置)。试试这个
标签: android switchcompat