I want to go into a new Activity with the onClick() method but my code is not working. Can you please offer some advice. I have some issues with the recyclerView, since it\'
This can be very useful for you to get to other Activities
first the recycler view adapter:
public class RecyclerViewAdapter extends RecyclerView.Adapter {
final private ListItemClickListener mOnClickListener;
String[] mStrings;
public MainMenuRVAdapter(String[] tvStrings, ListItemClickListener listener) {
mStrings = tvStrings;
mOnClickListener = listener;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.customRow, parent, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
holder.bind(position);
}
@Override
public int getItemCount() {
return mStrings.length;
}
public interface ListItemClickListener {
void onListItemClick(int clickedItemIndex);
}
class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
TextView RowTV;
public ViewHolder (View itemView) {
super(itemView);
RowTV = (TextView) itemView.findViewById(R.id.RowTextView);
itemView.setOnClickListener(this);
}
void bind(int listIndex) {
RowTV.setText(mListStrings[listIndex]);
}
@Override
public void onClick(View v) {
int clickedPosition = getAdapterPosition();
mOnClickListener.onListItemClick(clickedPosition);
}
}
}
Then the MainActivity:
public class MainActivity extends AppCompatActivity
implements NavigationView.OnNavigationItemSelectedListener, MainMenuRVAdapter.ListItemClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String[] stringsArray = getResources().getStringArray(R.array.mainStrings);
RecyclerView rv = (RecyclerView) findViewById(R.id.RV);
LinearLayoutManager layoutManager = new LinearLayoutManager(this);
rv.setLayoutManager(layoutManager);
rv.setAdapter(new MainMenuRVAdapter(stringsArray, this));
}
@Override
public void onListItemClick(int clickedItemIndex) {
Intent mIntent;
switch (clickedItemIndex) {
case 0: //first item in Recycler view
mIntent = new Intent (MainActivity.this, x.class);
startActivity(mIntent);
break;
case 1: //second item in Recycler view
mIntent = new Intent (MainActivity.this, y.class);
startActivity(mIntent);
break;
case 2: //third item in Recycler view
mIntent = new Intent (MainActivity.this, z.class);
startActivity(mIntent);
break;
}
you can use this method and add as many cases to the switch().
Hope I Helped.