У меня в activity есть фрагмент с recycler view (вертикальный список). Как сделать так, чтобы по нажатию любого элемента в этом списке открывался другой фрагмент? Вот код адаптера recycler view.
public class MessagesAdapter extends RecyclerView.Adapter<MessagesAdapter.ViewHolder> {
private MessagesFragment mContext;
private ArrayList<MessagesObject> MessagesArrayList;
public class ViewHolder extends RecyclerView.ViewHolder {
public TextView name, description, timestamp, count;
public ImageView avator;
public ViewHolder(View view) {
super(view);
avator = (ImageView)itemView.findViewById(R.id.item_chat_avatar);
name = (TextView) itemView.findViewById(R.id.dialog_title);
description = (TextView) itemView.findViewById(R.id.dialog_message);
timestamp = (TextView) itemView.findViewById(R.id.item_chat_date);
count = (TextView) itemView.findViewById(R.id.item_chat_unread_count);
}
}
public MessagesAdapter(MessagesFragment mContext, ArrayList<MessagesObject> MessagesArrayList) {
this.mContext = mContext;
this.MessagesArrayList = MessagesArrayList;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext())
.inflate(R.layout.item_messege, parent, false);
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
return new ViewHolder(itemView);
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
MessagesObject songs = MessagesArrayList.get(position);
Glide.with(mContext).load(R.drawable.a_avator).into(holder.avator);
holder.name.setText(songs.getMessagesName());
holder.description.setText(songs.getMessagesDescription());
holder.timestamp.setText(songs.getMessagesTime());
holder.count.setText(songs.getMessagesUnread());
}
@Override
public int getItemCount() {
return MessagesArrayList.size();
}
}
Делаешь интерфейс который будет ловить клик на итем в твоем списке и передавать в активити и уже в активити взависимости какой итем выбрал через swich запускаешь нужный фрагмент
Требуется добавить OnClickListener
для ViewHolder
, который будет делать что-то в таком плане:
@Override
public void onClick(View view){
AppCompatActivity activity = (AppCompatActivity) view.getContext();
Fragment myFragment = new MyFragment();
activity.getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, myFragment).addToBackStack(null).commit();
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Есть разные строки но надо определить именно L1H3708 и L1H2708Необходимо определять c помощью rejex есть ли L на первом месте и 3 или 2 на пятом
В одной из книг даются примеры и мне не совсем понятно использование кодового слова "new"