Я работаю над приложением чата, и в нем есть RecyclerView
, в котором есть username
, userstatus
и userimage
.
Когда я нажимаю на RecyclerView
, он открывает действие профиля и показывает мне username
, userstatus
и userimage
.Я могу получить эту информацию из RecyclerView
, используя putExtra()
, но я хочу получить ее непосредственно из базы данных.
Если я позвоню пользователю из SharedPrefManager
, он получит только имя моего профиля, но недругие.Как мне этого добиться?Может быть, есть способ получить пользователя из RecyclerView
?
Я использовал Google для поиска решения своей проблемы, но не нашел ничего полезного.
Здесь, как вы видите, я добавляю дополнительную информацию к своему намерению:
class UsersViewHolder extends RecyclerView.ViewHolder{
TextView textViewName, textViewEmail;
public Context context;
de.hdodenhof.circleimageview.CircleImageView imageView;
public UsersViewHolder(final View itemView, final Context context) {
super(itemView);
this.context = context;
textViewName = itemView.findViewById(R.id.all_users_username);
textViewEmail = itemView.findViewById(R.id.all_users_status);
imageView = itemView.findViewById(R.id.all_users_profile_image);
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int pos = getAdapterPosition();
int userid = SharedPrefManager.getInstance(mCtx).getUser().getId();
if(pos != RecyclerView.NO_POSITION){
User clickedDataItem = userList.get(pos);
Toast.makeText(v.getContext(), "You clicked " + clickedDataItem.getName(), Toast.LENGTH_SHORT).show();
}
String name = textViewName.getText().toString().trim();
String email = textViewEmail.getText().toString().trim();
Intent profileIntent = new Intent(v.getContext(), ProfileActivity.class);
profileIntent.putExtra("name",name);
profileIntent.putExtra("email", email);
profileIntent.putExtra("id",userid);
v.getContext().startActivity(profileIntent);
}
});
}
}
И в следующем упражнении я получаю это:
Intent intent = getIntent();
String name = intent.getExtras().getString("name");
String email = intent.getExtras().getString("email");
int userid = intent.getExtras().getInt("id");
ProfileName.setText(name);
ProfileStatus.setText(email);
Все работает отлично, кроме идентификатора пользователя, он выдает ошибку, если я хочу показать идентификатор пользователя, которого щелкнули пользователь, в сообщении тоста.Я делаю что-то неправильно?