У меня есть GridView с пользовательскими ячейками (ячейки содержат TextView
, ImageView
и Button
). Это мой обычай Adapter
класс для GridView:Добавить действие к кнопке, созданной внутри GridView в Java
public class CustomGridViewAdapter extends ArrayAdapter<Item> {
Context context;
int layoutResourceId;
int test;
ArrayList<Item> data = new ArrayList<Item>();
public CustomGridViewAdapter(Context context, int layoutResourceId,
ArrayList<Item> data) {
super(context, layoutResourceId, data);
this.layoutResourceId = layoutResourceId;
this.context = context;
this.data = data;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
View row = convertView;
RecordHolder holder = null;
test = position;
if (row == null) {
LayoutInflater inflater = ((Activity) context).getLayoutInflater();
row = inflater.inflate(layoutResourceId, parent, false);
holder = new RecordHolder();
holder.txtTitle = (TextView) row.findViewById(R.id.item_text);
holder.imageItem = (ImageView) row.findViewById(R.id.item_image);
holder.action = (Button) row.findViewById(R.id.item_action);
row.setTag(holder);
} else {
holder = (RecordHolder) row.getTag();
}
Item item = data.get(position);
holder.txtTitle.setText(item.getTitle());
Picasso.with(getContext()).load(item.getImageUrl()).into(holder.imageItem);
holder.action.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
Toast.makeText(getContext(), "Posizione: "+ position, Toast.LENGTH_LONG).show();
}
});
return row;
}
static class RecordHolder {
TextView txtTitle;
ImageView imageItem;
Button action;
}
}
Я получаю текст и изображение из массива, который я передаю от моей деятельности, и теперь я хочу, чтобы добавить конкретные действия для каждой кнопки, но я не могу поймите, как это сделать. Например, что мне делать, если я хочу вызвать метод внутри моего действия нажатием кнопки?
EDIT:
Я объявил позицию Final
и как при нажатии на кнопку Toast
показывает правильное положение, теперь мне нужно знать, как вызвать метод из моего MainActivity, когда кнопка получает щелкнул