Android使用Firebase数据库从listview获取特定id
我正在使用firebase开发一个Notes应用程序。正如您在第一个屏幕截图中所看到的,我使用自定义listview显示firebase数据库中的所有数据 之后,我有一个setOnItemLongClickListener从listview中删除所选项目。因此,当我长按一个项目时,我有这个AlertDialog菜单 因此,接下来我必须按下“是”按钮并从listView中删除所选项目 这是我的setOnItemLongClickListener代码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
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。有人能帮我吗?我该怎么做
2.当您从firebase检索数据时,必须将其存储在ArrayList类型的数据结构中。让变量为ArrayList类型的myList 然后在listView上试试这个 mListview.setOnItemSelected侦听器 您将获得项目的位置,然后使用该位置从对象的arraylist获取对象
您应该使用模型类来存储不同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) {
}
});