繁体   English   中英

获取列表视图中所选项目的 ID

[英]Get the ID of selected item in listview

我正在制作一个审查应用程序,我正在尝试显示来自 firebase 的所有子数据。 我的 firebase 中的一个片段是: https ://i.stack.imgur.com/YrmNO.png 我可以在列表视图中获取我想要的数据,但是我如何找出按下的内容以便我可以将数据发送到新的活动 ? 例如,单击 Bluemoon 并可以在新活动中从数据库中获取该数据?

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

        }
    });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM