[英]How to delete an item from both database as well as listview Android?
[英]How to Delete Item From Listview on Android
我要长按一下才能删除项目。 首先ı想获得位置,然后ı要删除任何物品。 我的主要活动
public class MainActivity extends AppCompatActivity {
final List<Kisi> kisiler = new ArrayList<Kisi>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
kisiler.add(new Kisi("Ahmet Yılmaz", false, 0));
kisiler.add(new Kisi("Ayşe Küçük", true, 1));
kisiler.add(new Kisi("Fatma Bulgurcu", true, 2));
kisiler.add(new Kisi("İzzet Altınmeşe", false, 3));
kisiler.add(new Kisi("Melek Subaşı", true, 4));
kisiler.add(new Kisi("Selim Serdilli", false, 5));
kisiler.add(new Kisi("Halil İbrahim", false, 6));
final ListView listemiz = (ListView) findViewById(R.id.liste);
final ozelAdapter adaptorumuz = new ozelAdapter(this, kisiler);
listemiz.setAdapter(adaptorumuz);
}
}
我的适配器:
package com.endroidteam.customlistview;
public class ozelAdapter extends BaseAdapter {
private LayoutInflater mInflater;
private List<Kisi> mKisiListesi;
public ozelAdapter(Activity activity, List<Kisi> kisiler) {
mInflater = (LayoutInflater) activity.getSystemService(
Context.LAYOUT_INFLATER_SERVICE);
mKisiListesi = kisiler;
}
@Override
public int getCount() {
return mKisiListesi.size();
}
@Override
public Object getItem(int position) {
return mKisiListesi.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View satirView;
satirView = mInflater.inflate(R.layout.satir, null);
TextView textView =
(TextView) satirView.findViewById(R.id.isimsoyisim);
ImageView imageView =
(ImageView) satirView.findViewById(R.id.simge);
Kisi kisi = mKisiListesi.get(position);
textView.setText(kisi.getIsim());
if (kisi.isKadinMi()) {
imageView.setImageResource(R.drawable.android_icon_big_13);
}
else {
imageView.setImageResource(R.drawable.android_icon_big_4);
}
return satirView;
}
}
我的GetterSetter:
private String isim;
private boolean kadinMi;
private int konum;
public Kisi(String isim, boolean kadinMi, int konum) {
super();
this.isim = isim;
this.kadinMi = kadinMi;
this.konum = konum;
}
@Override
public String toString() {
return isim;
}
public String getIsim() {
return isim;
}
public void setIsim(String isim) {
this.isim = isim;
}
public int getKonum() {
return konum;
}
public void setKonum(int konum) {
this.konum = konum;
}
public boolean isKadinMi() {
return kadinMi;
}
public void setKadinMi(boolean kadinMi) {
this.kadinMi = kadinMi;
}
}
请帮助我如何从以下列表视图中删除所选项目:
从适配器中删除元素,并使用以下命令通知listView
adapter.notifyDataSetChanged()
我假设您想在按下按钮时删除列表中的项目-在调用按钮按下的函数中,获取项目位置并按以下方式删除项目:
this.getListView().setLongClickable(true);
this.getListView().setOnItemLongClickListener(new OnItemLongClickListener() {
public boolean onItemLongClick(AdapterView<?> parent, View v, int position, long id) {
//Do some
return true;
}
});
kissiler.remove(position)
然后打电话
adapter.notifyDataSetChanged()
这将解决您的问题。
完整代码:
this.getListView().setLongClickable(true);
this.getListView().setOnItemLongClickListener(new OnItemLongClickListener() {
public boolean onItemLongClick(AdapterView<?> parent, View v, int position, long id) {
//Do some
kissiler.remove(position);
adapter.notifyDataSetChanged();
return true;
}});
编辑:我犯了一个可怕的错误,并使用id代替了位置-显然,您必须在function参数中使用position变量,因为它给出了位于项目列表中的整数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.