【发布时间】:2020-01-29 23:56:24
【问题描述】:
我遇到了问题。我想删除选定的 ListView 和引用键号(20191、20192、...如突出显示)及其子级的特定节点。 here's my Database Structure
这是我的 OnItemClickListener,重点是案例 2 以删除 ListView
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(final AdapterView<?> parent, View view, final int position, long id) {
final Aduanclass aduanclass = aduanclassList.get(position);
// selectedPosition = position;
// itemSelected = true;
// final Dialog dialog = new Dialog(MainActivity.this);
// dialog.setContentView(R.layout.activity_common_detail_aduan);
// dialog.setTitle("Pilih Aksi");
// dialog.show();
// final String Selection=arrayList.get(position);
final CharSequence [] dialog ={"Lihat Detail", "Ubah", "Hapus"};
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setTitle("Pilihan");
builder.setItems(dialog, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
switch (which){
case 0:
Intent intentCommondetail= new Intent(MainActivity.this,CommonDetailAduan.class);
intentCommondetail.putExtra("primekeyy", aduanclass.getPrimekey());
intentCommondetail.putExtra("kategory", aduanclass.getKategori());
intentCommondetail.putExtra("deskripsy",aduanclass.getDeskripsi());
// intentCommondetail.putExtra("kategori",Selection);
// intentCommondetail.putExtra("deskripsi",Selection);
startActivity(intentCommondetail);
break;
case 1:
Intent intentCommonedit= new Intent(MainActivity.this,CommonUpdateAduan.class);
// intentCommonedit.putExtra("primekeyy", aduanclass.getPrimekey());
intentCommonedit.putExtra("primekeyy", aduanclass.getPrimekey());
intentCommonedit.putExtra("kategory", aduanclass.getKategori());
intentCommonedit.putExtra("deskripsy",aduanclass.getDeskripsi());
// intentCommondetail.putExtra("kategori",Selection);
// intentCommondetail.putExtra("deskripsi",Selection);
startActivity(intentCommonedit);
break;
case 2:
deleteData(primkey);
}
}
});
builder.create().show();
}
});
((ArrayAdapter)listView.getAdapter()).notifyDataSetChanged();
这是我的 deleteData 方法
private void deleteData(final String primkey) {
DatabaseReference mDatabase1 =FirebaseDatabase.getInstance().getReference("aduan").getRef();
mDatabase1.removeValue();
我尝试运行代码,但没有删除 Firebase 数据库中的特定 listView 和特定节点,而是删除了“aduan”的所有子节点
仅供参考,我将键号设置为在数据输入中每次添加时自动增加 +1,但我不知道如何引用键号。
感谢您的帮助
【问题讨论】:
-
你从未在数据库引用中使用过主键
标签: android firebase listview crud onitemclicklistener