如何从ListView中删除Firebase Android中的特定节点

问题描述 投票:1回答:2

我有一个问题。我想删除选定的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,但我不知道如何引用键号。

感谢您的帮助

我有一个问题。我想删除选定的ListView和引用键号(突出显示为20191,20192,...)的特定节点及其子级。这是我的数据库结构,这是我的...

android firebase listview crud onitemclicklistener
2个回答
0
投票

您从未在数据库参考中使用主键。代码应该是这样的


0
投票
private void deleteData(final String primkey) {
    DatabaseReference mDatabase1 =FirebaseDatabase.getInstance().getReference("aduan").getRef();
    mDatabase1.removeValue();
© www.soinside.com 2019 - 2024. All rights reserved.