I have a gridView and I\'d like to launch a different intent depending on the position of the item clicked.
I\'ve instantiated the following onClick listener which
Make a string array with your classes, the in the onItemClick () create another string declared with the position (item) clicked.
public class MainActivity extends Activity {
String [] classes = {"act1", "act2"}; // activity files
GridView gridView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
gridView = (GridView) findViewById(R.id.gridView);
gridView.setAdapter(new ImageAdapter(this));
gridView.setOnItemClickListener(new OnItemClickListener() {
@SuppressWarnings("rawtypes")
public void onItemClick(AdapterView> parent, View v, int position, long id) {
String pos = classes[position];
try {
Class start = Class.forName("com.company.app." + pos); //Your package name
Intent i = new Intent(MainActivity.this, start);
startActivity(i);
} catch(ClassNotFoundException e){
e.printStackTrace();
}
Toast.makeText(
getApplicationContext(),
((TextView) v.findViewById(R.id.label))
.getText(), Toast.LENGTH_SHORT).show();
}
});
}
}