gpt4 book ai didi

java - 无法将字符串传递给下一个 Activity

转载 作者:太空宇宙 更新时间:2023-11-04 10:28:41 25 4
gpt4 key购买 nike

第一个 Activity

firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<AllUsers, UsersViewHolder>(options) {
@Override
protected void onBindViewHolder(@NonNull UsersViewHolder holder, int position, @NonNull AllUsers model) {
holder.setName(model.getName());
holder.setStatus(model.getStatus());


final String user_id = getRef(position).getKey();

holder.mView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

DatabaseReference reference = FirebaseDatabase.getInstance().getReference().child("Users").child(user_id);

reference.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
name = dataSnapshot.child("Name").getValue().toString();
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});


Intent intent = new Intent(getActivity(), Chat.class);
intent.putExtra("Recievers_Id", user_id);
intent.putExtra("Recievers_Name", name);

startActivity(intent);
}
});

}

第二次 Activity

name.setText((getIntent().getStringExtra("Recievers_Name")));
MessageRecieverId = getIntent().getStringExtra("Recievers_Id");

id 已传递,但名称未传递...我确定问题在于从数据库中获取它

屏幕截图 - https://ibb.co/mBKZLd

我可以从数据库中获取 id,因为它是父级...但我无法获取其子级“Name”...有人能指出我哪里出错了

最佳答案

这个addListenerForSingleValueEvent方法是异步调用的。在获取其值之前,您将 name 放入 Intent 中。获得名字后,您必须开始Activity。在 onDataChange 方法中启动聊天 Activity

            holder.mView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

DatabaseReference reference = FirebaseDatabase.getInstance().getReference().child("Users").child(user_id);

reference.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
name = dataSnapshot.child("Name").getValue().toString();
Intent intent = new Intent(getActivity(), Chat.class);
intent.putExtra("Recievers_Id", user_id);
intent.putExtra("Recievers_Name", name);

startActivity(intent);

}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});

关于java - 无法将字符串传递给下一个 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50303504/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com