Java 单击ListView项目时如何在详细信息活动上加载Firebase DB变量

Java 单击ListView项目时如何在详细信息活动上加载Firebase DB变量,java,android,listview,firebase,firebase-realtime-database,Java,Android,Listview,Firebase,Firebase Realtime Database,我正在开发使用Firebase数据库作为后端的android应用程序。从我的Json键检索的列表视图项。例如: { "Player3" : { "LY" : "ewfw", "Ty" : "rwerw" } } 然后,“LY”和“TY”将作为列表视图项加载(工作正常)。我想要的是,当“LY”或“TY”(列表视图项)单击“ewfw”或“rwerw”时,将在详细活动上显示。问题在于,只有键显示在“详细信息”活动上,而不是“值”。如何为详细信

我正在开发使用Firebase数据库作为后端的android应用程序。从我的Json键检索的列表视图项。例如:

 {
    "Player3" : {
        "LY" : "ewfw",
        "Ty" : "rwerw"
      }
 } 
然后,“LY”和“TY”将作为列表视图项加载(工作正常)。我想要的是,当“LY”或“TY”(列表视图项)单击“ewfw”或“rwerw”时,将在详细活动上显示。问题在于,只有键显示在“详细信息”活动上,而不是“值”。如何为详细信息活动加载值? 这是我的密码

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;
    }

}
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());

 }
}

谢谢你的帮助

我的问题已经有了答案。我将这些行放在列表项活动的代码中,并在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);


                    }

                });
            }
mDatabase.addChildEventListener(新的ChildEventListener(){
@凌驾
公共void onChildAdded(DataSnapshot DataSnapshot,字符串s){
最终字符串playerName=dataSnapshot.getValue(String.class);
hy.add(playerName);
setOnItemClickListener(新的AdapterView.OnItemClickListener(){
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
//player.getValue();
//player2=(String)String.valueOf(player.getValue());
//String topic=String.valueOf(player.getValue());
//topic=(字符串)parent.getItemAtPosition(位置);
Intent Intent=newintent(getContext(),Details.class);
intent.putExtra(“key”,String.valueOf(hy.get(position));
星触觉(意向);
}
});
}

我的问题得到了答案。我将这些行放在列表项Activity的代码中,并在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);


                    }

                });
            }
mDatabase.addChildEventListener(新的ChildEventListener(){
@凌驾
公共void onChildAdded(DataSnapshot DataSnapshot,字符串s){
最终字符串playerName=dataSnapshot.getValue(String.class);
hy.add(playerName);
setOnItemClickListener(新的AdapterView.OnItemClickListener(){
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
//player.getValue();
//player2=(String)String.valueOf(player.getValue());
//String topic=String.valueOf(player.getValue());
//topic=(字符串)parent.getItemAtPosition(位置);
Intent Intent=newintent(getContext(),Details.class);
intent.putExtra(“key”,String.valueOf(hy.get(position));
星触觉(意向);
}
});
}

您面临的问题是什么?当我在intent getKey()上放置Friends.get(位置)时将显示。我想要的是要显示的键的值您是否从Firebase DB获得正确的值?我正在从Firebase DB获得键,但我需要的是Firebase DB的详细视图值。将加载Firebase DB的列表视图键,当单击列表项时,我想要在另一个ac上显示键的相应值你面临的问题是什么?当我在intent getKey()上放置Friends.get(position)时将显示。我想要的是要显示的键的值您是否从Firebase DB获得正确的值?我正在从Firebase DB获得键,但我需要的是Firebase DB的详细视图值。将加载Firebase DB的列表视图键,当单击列表项时,我想要在另一个ac上显示键的相应值itivty