Если вы знаете, в вашем адаптере намерение запустить и данные для его вставки вы можете попробовать что-то вроде этого:
public class MainAdapter extends BaseAdapter implements OnClickListener {
private Context mContext;
private Activity mActivity;
private Integer[] mText = {
R.string.main_team,
R.string.main_league,
R.string.main_economy,
R.string.main_arena,
R.string.main_staff,
R.string.main_team_up
};
public MainAdapter(Context c,Activity a) {
mContext = c;
mActivity = a;
}
...
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Button buttonView;
if (convertView == null) { // if it's not recycled, initialize some attributes
buttonView = new Button(mContext);
buttonView.setLayoutParams(new GridView.LayoutParams(85, 45));
//imageView.setScaleType(Button.ScaleType.CENTER_CROP);
buttonView.setPadding(4, 4, 4, 4);
} else {
buttonView = (Button) convertView;
}
buttonView.setText(mText[position]);
// For exemple a String, but setTag takes an object
buttonView.setTag("dataToSendThrewTheIntent");
buttonView.setOnClickListener(this);
return buttonView;
}
@Override
public void onClick(View v) {
String dataToSendThrewTheIntent = (String) v.getTag();
Intent i = new Intent(mContext, DestinationActivity.class);
i.putExtra("key", dataToSendThrewTheIntent);
mActivity.startActivity(i);
}
}
Этот метод позволяет избежать нескольких прослушивателей onClick.