Существует много способов сделать это ...
выполните следующие шаги, пожалуйста:
Сначала) создать публичный интерфейс внутри вашего адаптера, а затем создать для него личный экземпляр
Секунда) используйте setOnClickListener для вашего элемента ViewHolder внутри метода onBindViewHolder в вашем адаптере и вызовите один из методов интерфейса
Третье) перейдите к MainActivity и реализуйте интерфейс, который мы создали в первом шаге, затем вы должны переопределить методы интерфейса в MainActivity, а затем использовать startActivity.
Первый шаг
public class YourAdapter extends RecyclerView.Adapter<YourAdapter.ViewHolder> {
public interface AdapterCallback {
void onClickCallback(UserAdvertisementListObject advertisementList);
}
private AdapterCallback adapterCallback;
//...
Второй шаг
@Override
public void onBindViewHolder(@NonNull final ViewHolder viewHolder, final int i) {
viewHolder.YourItem.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
UserAdvertisementListObject advertisementList = UserAdvertisementList.get(i);
adapterCallback.OnClickCallBack(advertisementList);
}
});
//...
Последний шаг
public class MainActivity extends AppCompatActivity implements YourAdapter.AdapterCallback{
@Override
public void onClickCallback(UserAdvertisementListObject advertisementList) {
Intent intent = new Intent(MainActivity.this, UserAdvertisementItemActivity.class);
intent.putExtra("from_city", advertisementList.getFromCity());
intent.putExtra("to_city", advertisementList.getToCity());
intent.putExtra("number_of_places", advertisementList.getNumberOfPlaces());
intent.putExtra("price", advertisementList.getPrice());
intent.putExtra("datetime", advertisementList.getDatetime());
intent.putExtra("info", advertisementList.getInfo());
startActivity(intent);
}
}