java - 获取 ListView 中所选项目的ID

标签 java android firebase

我正在制作一个审查应用程序,并尝试显示来自 firebase 的所有子数据。 我的 firebase 的一个 fragment 是:/image/YrmNO.png 我可以在 ListView 中获取我想要的数据,但如何找出按下的内容以便我可以将数据发送到新 Activity ?例如,单击 Bluemoon 并可以在新 Activity 中从数据库获取该数据?

DatabaseReference Reference = FirebaseDatabase.getInstance().getReference().child("Beers");
        //DatabaseReference zone1Ref = Reference.child(beerCode);

        listView =(ListView)findViewById(R.id.allBeersList);
        final ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,mAllBeers);
        listView.setAdapter(arrayAdapter);
        arrayAdapter.clear();

        Reference.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                //arrayAdapter.clear();
                for(DataSnapshot snapshot : dataSnapshot.getChildren()){
                //arrayAdapter.add(snapshot.getValue().toString());
                    Beers beers = snapshot.getValue(Beers.class);
                    String beerClass = beers.getmBrewery() + "  " + beers.getmName();

                    arrayAdapter.add(beerClass);



                }
            arrayAdapter.notifyDataSetChanged();
            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {

            }
        });
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
                //Toast.makeText(allBeers.this,"Test",Toast.LENGTH_SHORT).show();
                //Intent intent = new Intent(allBeers.this,beerInformation.class);
                //startActivity(intent);
                //Toast.makeText(allBeers.this,beerCode + "",Toast.LENGTH_SHORT).show();


            }
        });```



最佳答案

    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
           //  ListView Clicked item index 
                int itemPosition     = position; 

                // ListView Clicked item value 
                String  itemValue    = (String) listView.getItemAtPosition(position); 

                // Show Toast 
                Toast.makeText(getApplicationContext(), 
                        "Position:"+itemPosition+"  Item Clicked: " +itemValue , Toast.LENGTH_LONG) 
                        .show(); 
                   //Instead of showing a toast here you can pass "itemValue" to another activity as intent

        }
    });

关于java - 获取 ListView 中所选项目的ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60569974/

相关文章:

Java - 在自身内部使用枚举值

android - 删除帐户时删除数据库

android - Intent extras 未删除/替换

ios - 离线时不会一直触发 Firebase 值事件

ios - 检索 Firebase 数据的更有效方法?

java - Java 中的动态类加载(枚举)

java - 如何扫描类的注解?

java - 复制大量文件时,JDK 7 Watchkey pollEvents 未捕获 ENTRY_CREATE 或 ENTRY_MODIFY

flutter - 如何从 Flutter 中的列表中提取 JSON?

java - ImageMagick 和 Java Runtime Exec 的问题