我有一个自定义ListView
和适配器。我可以从我的自定义列表中设置的列表中删除一个项目,但我可以从ListView
. 当我尝试调用adapter.remove(position)
编辑器时说“创建一个方法"remove(int position)""
。我不知道当我在适配器中创建这个方法时应该做什么。代码:
填写我的列表视图:
lv = (ListView) findViewById(R.id.list);
LayoutInflater mLInflater = getLayoutInflater();
final ListViewAdapter adapter = new ListViewAdapter(
getApplicationContext(), kimdenlist, konulist,
mLInflater);
lv.setAdapter(adapter);
列表视图适配器:
public class ListViewAdapter extends BaseAdapter {
static HashMap<Integer, Boolean> cartItems = new HashMap<Integer, Boolean>();
Context mContext;
ArrayList<String> kimdenlist; // to load images
ArrayList<String> konulist; // for data
LayoutInflater mLayoutInflater;
public ListViewAdapter(Context context, ArrayList<String> kimdenlist, ArrayList<String> konulist,
LayoutInflater layoutInflater) {
mContext = context;
this.kimdenlist = kimdenlist;
this.konulist = konulist;
mLayoutInflater = layoutInflater;
}
@Override
public int getCount()
{
return kimdenlist.size(); // images array length
}
@Override
public Object getItem(int arg0) {
return null;
}
@Override
public long getItemId(int arg0) {
return 0;
}
int count = 0;
// customized Listview
@Override
public View getView(int position, View arg1, ViewGroup arg2) {
View v;
final int pos = position;
v = mLayoutInflater.inflate(R.layout.listust, null);
TextView kimden = (TextView) v.findViewById(R.id.textvKimden);
kimden.setText(kimdenlist.get(position));
TextView konu = (TextView) v.findViewById(R.id.textvKonu);
konu.setText(konulist.get(position));
CheckBox ch = (CheckBox) v.findViewById(R.id.chk);
try {
if (count != 0) {
boolean b = cartItems.get(pos);
if (b == false)
ch.setChecked(false);
else
ch.setChecked(true);
}
} catch (NullPointerException e) {
}
ch.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton arg0, boolean arg1) {
cartItems.put(pos, arg1);
count++;
}
});
return v;
}
public static HashMap<Integer, Boolean> getcartItems() {
return cartItems;
}
}
当我点击“delete_Button”时:我只能从列表中删除:
konulist.remove(konulist.get(position));;
kimdenlist.remove(kimdenlist.get(position));