您好,我正在尝试创建一个聊天应用程序。我成功完成了用户身份验证、注册等初始步骤。成功登录后,用户会看到如下图所示的屏幕:
ListView listView;
View view;
ArrayList<String> usernames = new ArrayList<>();
String name;
FirebaseDatabase db = FirebaseDatabase.getInstance();
DatabaseReference root = db.getReference();
DatabaseReference userRef = root.child("users");
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
view = inflater.inflate(R.layout.fragment_users,container,false);
listView =(ListView) view.findViewById(R.id.listView);
final ArrayAdapter <String> arrayAdapter = new ArrayAdapter<String>
(getContext(),android.R.layout.simple_list_item_1,usernames);
listView.setAdapter(arrayAdapter);
userRef.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
String value = dataSnapshot.getValue().toString();
try
{
JSONObject object = new JSONObject(value);
name = object.getString("username");
}
catch(JSONException e)
{
e.printStackTrace();
}
usernames.add(name);
arrayAdapter.notifyDataSetChanged();
}
@Override
public void onChildChanged(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {}
@Override
public void onChildRemoved(@NonNull DataSnapshot dataSnapshot) {}
@Override
public void onChildMoved(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {}
});
return view;
}
现在,每当用户点击特定名称时,我都必须将他带到一个消息 Activity (更准确地说是另一个 Activity )。请告诉我如何添加 onClickListeners 或任何其他可能的方法来执行此操作?
最佳答案
试试这个
在您的 fragment 或 Activity 中声明此内容
private OnItemClickListener listPairedClickItem = new OnItemClickListener() {
@Override
public void onItemClick(AdapterView < ? > arg0, View arg1, int arg2, long arg3) {
String personName = usernames.get(position);
Toast.makeText( context, "listview clicked ", Toast.LENGTH_LONG ).show();
Intent intent = new Intent(currenactivityname.this, activitytolaunchname.class);
intent.putExtra("username",personName ); //get this name in next activity and show in title bar
startActivity(intent);
}
};
用法
listView.setOnItemClickListener( listPairedClickItem );
关于java - 如何为 ListView 中的项目设置 onClickListener(listview 的项目是通过从 firebase 检索数据动态生成的),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56337451/