简体   繁体   English

单击ListView项时如何在详细信息活动上加载Firebase DB Vaule

[英]How to load Firebase DB Vaule on detail activity when ListView Item Clicked

I am developing android application that uses Firebase Database as back End. 我正在开发使用Firebase数据库作为后端的android应用程序。 List View items retrieved from my Json key. 从我的Json密钥检索的列表视图项。 For example:- 例如:-

 {
    "Player3" : {
        "LY" : "ewfw",
        "Ty" : "rwerw"
      }
 } 

Then, "LY" and "TY" will be loaded on As list View Item(which works fine). 然后,“ LY”和“ TY”将被加载为“列表”视图项(工作正常)。 and after What i want is when "LY" or "TY" (List View Item) clicked "ewfw" or "rwerw" will be shown on detail acitivity. 在我想要的是单击“ LY”或“ TY”(列表视图项)后,将在详细信息上显示“ ewfw”或“ rwerw”。 The problem is only Key is displayed on detail activity not Value. 问题是只有关键显示在明细活动中而不显示值。 How can i load value for detail activity? 如何为明细活动加载值? Here is my code... 这是我的代码...

ListItemActivity.Java ListItemActivity.Java

public class ListItemActivity5 extends Fragment {
    private static final String TAG = "Tab4Fragment";
    //String[] values = new String[]{"", "", "", "", "", "", "", "", ""};
    ListView listView;
    TextView textView;
    Array array;
    RelativeLayout relativeLayout;
    ViewGroup.LayoutParams layoutparams;
    private DatabaseReference mDatabase;
    RelativeLayout container;
    AnimationDrawable anim;
    Context context;

    //private TextView text;
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.activity_conferance, container, false);
        //text = (TextView) view.findViewById(R.id.textView1);
        listView = (ListView) view.findViewById(R.id.list);
        container = (RelativeLayout) view.findViewById(R.id.container5);
        final TextView textView1 = (TextView) view.findViewById(R.id.textView1);
        anim = (AnimationDrawable) container.getBackground();
        anim.setEnterFadeDuration(2000);
        anim.setExitFadeDuration(3000);
        final ListView listView = (ListView) view.findViewById(R.id.list);
        final ArrayList<String> friends = new ArrayList<String>();

        mDatabase = FirebaseDatabase.getInstance().getReference("Player");
        mDatabase.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(final DataSnapshot dataSnapshot) {
                friends.clear();
                for (final DataSnapshot player : dataSnapshot.getChildren()) {
                    Log.i("Player", player.getKey());
                    friends.add(player.getKey());
                    player.getValue();


                    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                        public void onItemClick(AdapterView<?> parent, View view,
                                                int position, long id) {
                            player.getValue();
                            //player2 = (String) String.valueOf(player.getValue());
                            //String topic = String.valueOf(player.getValue());
                            //topic = (String) parent.getItemAtPosition(position);
                            Intent intent = new Intent(getContext(), Details.class);

                            intent.putExtra("key", String.valueOf(player.getValue()));

                            startActivity(intent);


                        }

                    });
                }
                ArrayAdapter arrayAdapter = new ArrayAdapter(getContext(), android.R.layout.simple_list_item_1,
                        friends) {

                    @Override
                    public View getView(int position, View convertView, ViewGroup parent) {

                        View view = super.getView(position, convertView, parent);

                        layoutparams = view.getLayoutParams();
                        TextView textView = (TextView) view.findViewById(android.R.id.text1);

            /*YOUR CHOICE OF COLOR*/
                        textView.setTextColor(Color.WHITE);
                        textView.setTextSize(22);

                        //Define your height here.
                        //layoutparams.height = 240;

                        view.setLayoutParams(layoutparams);

                        return view;


                    }
                };
                listView.setAdapter(arrayAdapter);
            }

            @Override
            public void onCancelled(DatabaseError databaseError) {

            }


        });

        return view;
    }

}

Details.Java 详细信息

public class Details extends Activity {
    RelativeLayout container;
    AnimationDrawable anim;
    ScrollView mScrollView;
    TextView textView1;
    private DatabaseReference mDatabase;
    private ListItemActivity1 mylist1;
    private DataSnapshot dataSnapshot;
    FloatingActionButton floatingActionButton;
    private ListItemActivity5 listItemActivity5;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.ab1);

        textView1 = (TextView) findViewById(R.id.textView1);
        //mref = new Firebase("https://tafach-love-2.firebaseio.com/");
        Intent intent = getIntent();

        if(intent.hasExtra("key")){
            textView1.setText(intent.getStringExtra("key"));
        }
        textView1.setMovementMethod(new ScrollingMovementMethod());

 }
}

Thanks for your help. 谢谢你的帮助。

I have got answer for my question. 我已经回答了我的问题。 I put these lines to my code on List ItemActivity and set onclickListner in ChildEventListner instead of AddEventLister... 我将这些行放入List ItemActivity的代码中,并在ChildEventListner中设置onclickListner而不是AddEventLister ...

 mDatabase.addChildEventListener(new ChildEventListener() {
            @Override
            public void onChildAdded(DataSnapshot dataSnapshot, String s) {
                final String playerName = dataSnapshot.getValue(String.class);
                hy.add(playerName);
                listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                    public void onItemClick(AdapterView<?> parent, View view,
                                            int position, long id) {
                        //player.getValue();
                        //player2 = (String) String.valueOf(player.getValue());
                        //String topic = String.valueOf(player.getValue());
                        //topic = (String) parent.getItemAtPosition(position);
                        Intent intent = new Intent(getContext(), Details.class);

                        intent.putExtra("key", String.valueOf(hy.get(position)));

                        startActivity(intent);


                    }

                });
            }

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

相关问题 单击 ListView 项时打开有关新活动的详细信息 - Open detail on new activity when ListView item is clicked 在Firebase RecyclerView Cardview中单击项目时如何打开详细信息活动 - How to open a details activity when an item is clicked in Firebase RecyclerView Cardview 单击展开式列表视图中的子项时如何在另一个活动中打开列表视图 - How to open a listview in another activity when a child item in an expandable listview is clicked 当我单击 listView 项目时,如何在另一个活动中显示来自 firestore 的详细信息? - How to display detail informations from firestore in another activity when I click a listView item? 单击ListView项时将_id从一个活动传递到另一个活动 - Passing an _id from one activity to another when ListView item is clicked 单击ListView中的项目时在另一个活动中显示列表 - Showing a List in another activity when clicked on an item in ListView 如何根据在列表视图中单击的项目启动新活动? - How can I start new Activity based on the item clicked in listview? 如何单击 ListView 项目并打开引用我单击的项目的活动? - How do I click on a ListView item and open an Activity referring to the item I clicked on? 单击项目时从列表视图中删除项目 - Delete item from listview when the item is clicked 单击时如何播放Listview项目的特定声音 - How to play a specific sound for a Listview item when it is clicked
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM