Android使用Firebase数据库从listview获取特定id

Android使用Firebase数据库从listview获取特定id,android,listview,firebase,firebase-realtime-database,Android,Listview,Firebase,Firebase Realtime Database,我正在使用firebase开发一个Notes应用程序。正如您在第一个屏幕截图中所看到的,我使用自定义listview显示firebase数据库中的所有数据 之后,我有一个setOnItemLongClickListener从listview中删除所选项目。因此,当我长按一个项目时,我有这个AlertDialog菜单 因此,接下来我必须按下“是”按钮并从listView中删除所选项目 这是我的setOnItemLongClickListener代码 mListView.setOnItemLon

我正在使用firebase开发一个Notes应用程序。正如您在第一个屏幕截图中所看到的,我使用自定义listview显示firebase数据库中的所有数据

之后,我有一个setOnItemLongClickListener从listview中删除所选项目。因此,当我长按一个项目时,我有这个AlertDialog菜单

因此,接下来我必须按下“是”按钮并从listView中删除所选项目

这是我的setOnItemLongClickListener代码

mListView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
        @Override
        public boolean onItemLongClick(final AdapterView<?> parent, View view, final int position, long id) {

            final AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(MainActivity.this);
            dialogBuilder.setTitle("Delete List?");
            dialogBuilder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {



                }
            });

            dialogBuilder.show();
            return false;
        }
    });
这是我的Firebase数据库

问题是我无法获取特定长按项目的id以删除它

例如,如果我长按第一项,我想获得id -KiFDsP6qOUAo6hw_ES0。有人能帮我吗?我该怎么做

  • 首先修改类并添加一个字符串类型的属性Parent,然后将数据添加到数据库setValue of Parent to Parent Value
    2.当您从firebase检索数据时,必须将其存储在ArrayList类型的数据结构中。让变量为ArrayList类型的myList 然后在listView上试试这个 mListview.setOnItemSelected侦听器 您将获得项目的位置,然后使用该位置从对象的arraylist获取对象
  • 现在获取Objects的父值并将其设置为null

  • 您应该使用模型类来存储不同ID的数据,然后使用该模型类来获取数据。您能显示向适配器发送数据的代码吗。?
    public class ListAdapter extends ArrayAdapter<Post>{
    
    public ListAdapter(Context context, int resource, List<Post> objects){
        super(context, resource, objects);
    }
    
    @Override
    public View getView(int position, View convertView, ViewGroup parent){
        if(convertView == null){
            convertView = ((Activity)getContext()).getLayoutInflater().inflate(R.layout.item_row,parent,false);
        }
    
        TextView listName = (TextView) convertView.findViewById(R.id.item_title);
        TextView date = (TextView) convertView.findViewById(R.id.item_date);
        TextView body = (TextView) convertView.findViewById(R.id.item_body);
    
        Post list =  getItem(position);
    
        listName.setText(list.getTitle());
        date.setText(list.getDate());
        body.setText(list.getBody());
    
        //checkBox.setVisibility(View.GONE);
    
    
        return convertView;
    }
    
        mDatabase.child(getUid()).addChildEventListener(new ChildEventListener() {
            @Override
            public void onChildAdded(DataSnapshot dataSnapshot, String s) {
                Post post = dataSnapshot.getValue(Post.class);
                mAdapter.add(post);
            }
    
            @Override
            public void onChildChanged(DataSnapshot dataSnapshot, String s) {
    
            }
    
            @Override
            public void onChildRemoved(DataSnapshot dataSnapshot) {
    
            }
    
            @Override
            public void onChildMoved(DataSnapshot dataSnapshot, String s) {
    
            }
    
            @Override
            public void onCancelled(DatabaseError databaseError) {
    
    
            }
        });