@Override
public View getView(final int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
Holder holder=new Holder();
View rowView;
rowView = inflater.inflate(R.layout.receiptlistsample, null);
holder.product=(TextView) rowView.findViewById(R.id.product);
holder.quantity=(TextView) rowView.findViewById(R.id.quan);
holder.price=(TextView) rowView.findViewById(R.id.price);
holder.add = (ImageButton)rowView.findViewById(R.id.plus);
holder.cancel = (ImageButton)rowView.findViewById(R.id.minus);
holder.product.setText(pro[position]);
holder.quantity.setText(quant[position]);
holder.price.setText(pri[position]);
holder.add.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(context, "add ", Toast.LENGTH_LONG).show();
}
});
holder.cancel.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(context, "cancel ", Toast.LENGTH_LONG).show();
}
});
return rowView;
}}
我在使用customAdapter for listview时遇到问题,它有一个带Textview的自定义布局和两个按钮添加和取消。 我想在按下按钮添加或取消后从MainActivity调用方法。吐司工作正常,但我不能称之为方法。
答案 0 :(得分:0)
这样做首先创建界面
public interface GetData {
public void getvalue(String flag);
}
现在通过适配器调用
传递它mAdapter = new SearchAdapter(Search_Data.this, eventlistsubcat, new GetData() {
@Override
public void getvalue(String flag) {
strlistner=flag.toString();
if(strlistner.equals("add")){
//call your add method
}
}
});
在适配器类
中声明接口的对象
GetData listner;
并在构造函数中初始化
public SearchAdapter(Context mContext, ArrayList<abx_Detail> feedItemList, GetData listner) {
this.mContext = mContext;
this.feedItemList = feedItemList;
this.listner=listner;
itemcheck = new boolean[feedItemList.size()];
}
点击你的按钮调用
listner.getvalue(flag);
所以根据mainactivity中的标志值检查或调用方法。你称之为适配器的地方