Reputation: 907
I have a problem. In my app, i've got a custom ListView with two Button for each Row. I've created a class extends ArrayAdapter where i try to manage the OnClickListner of the Button, but it Doesn't work. If i press a buttton, nothing happens. This is my class:
public class AdapterMovimentazioni extends ArrayAdapter<ItemWithIdMov> {
private Context context;
private ArrayList<ItemWithIdMov> items;
private LayoutInflater vi;
public AdapterMovimentazioni(Context context, ArrayList<ItemWithIdMov> items) {
super(context, 0, items);
this.context = context;
this.items = items;
vi = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
ViewHolder holder;
final ItemWithIdMov i = items.get(position);
if (convertView == null) {
convertView = vi.inflate(R.layout.item_movimentazioni, null);
holder = new ViewHolder();
holder.icon = (ImageView) convertView.findViewById(R.id.imageMov);
holder.data = (TextView) convertView.findViewById(R.id.DataMov);
holder.importo = (TextView) convertView.findViewById(R.id.ImportoMov);
holder.locale = (TextView) convertView.findViewById(R.id.localeMov);
holder.delete = (Button) convertView.findViewById(R.id.ButtonDeleteMov);
holder.set = (Button) convertView.findViewById(R.id.ButtonSetMov);
holder.delete.setTag(holder);
holder.delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(context, "DELETEEEEEE", Toast.LENGTH_LONG);
}
});
holder.set.setTag(holder);
holder.set.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(context, "SET", Toast.LENGTH_LONG);
}
});
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
if (i != null) {
holder.icon.setImageResource(i.getIcon());
holder.data.setText(i.getData());
holder.importo.setText(i.getImporto());
holder.locale.setText(i.getLocName());
}
return convertView;
}
private class ViewHolder {
public ViewHolder() {
}
protected Button delete;
protected Button set;
protected ImageView icon;
protected TextView data;
protected TextView importo;
protected TextView locale;
}
Can you help me?? Thank you
Upvotes: 1
Views: 126
Reputation: 1570
change your getview method after createing views decleration onClicklistener;
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
ViewHolder holder;
final ItemWithIdMov i = items.get(position);
if (convertView == null) {
convertView = vi.inflate(R.layout.item_movimentazioni, null);
holder = new ViewHolder();
holder.icon = (ImageView) convertView.findViewById(R.id.imageMov);
holder.data = (TextView) convertView.findViewById(R.id.DataMov);
holder.importo = (TextView) convertView.findViewById(R.id.ImportoMov);
holder.locale = (TextView) convertView.findViewById(R.id.localeMov);
holder.delete = (Button) convertView.findViewById(R.id.ButtonDeleteMov);
holder.set = (Button) convertView.findViewById(R.id.ButtonSetMov);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(context, "DELETEEEEEE", Toast.LENGTH_LONG);
}
});
holder.set.setTag(holder);
holder.set.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(context, "SET", Toast.LENGTH_LONG);
}
});
if (i != null) {
holder.icon.setImageResource(i.getIcon());
holder.data.setText(i.getData());
holder.importo.setText(i.getImporto());
holder.locale.setText(i.getLocName());
}
return convertView;
}
Upvotes: 0
Reputation: 8939
use Toast Like
Toast.makeText(context, "SET", Toast.LENGTH_LONG).show();
Upvotes: 2