使用简单的游标适配器时,如何设置按钮onclicklistner

时间:2016-04-14 09:54:32

标签: android listview simplecursoradapter

  • 以下是我使用简单ListView
  • 显示自定义CursorAdapter的代码
  • 我使用此代码显示购物车商品,我想在ListView
  • 中添加按钮
  • 由于我是Android开发新手,我无法弄清楚问题是什么
myDbHelper.openDataBase();

    final Cursor ictemp = myDbHelper.getOrdredItems(myDbHelper);
    if (ictemp != null) {

        ictemp.moveToFirst();
        count = ictemp.getCount();
        Log.d("count", "count===" + count);

        String[] from = new String[] { "item_name", "item_rate", "qty",
                "unit" };
        int[] to = new int[] { R.id.tv_Name, R.id.tv_Rate, R.id.et_qty,
                R.id.tv_unit };

        final SimpleCursorAdapter sc = new SimpleCursorAdapter(this,
                R.layout.list_row2, ictemp, from, to, 0);

        final Cursor crs = myDbHelper.getTotal(myDbHelper);
        if (crs != null) {

            crs.moveToFirst();

            String total = crs.getString(0);
            Gtotal.setText("Rs." + total);
            tvcount.setText("" + count);



        }

        lv.setAdapter(sc);

        lv.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> arg0, View view,
                    final int pos, long arg3) {


                remove = (Button) arg0.findViewById(R.id.btn_remove);
                switch (arg0.getId()) {

                case R.id.btn_remove:

                    Toast.makeText(ctx, "Clicked on " + pos,
                            Toast.LENGTH_SHORT).show();

                    break;}



            }
        });

1 个答案:

答案 0 :(得分:1)

一种解决方案是创建一个扩展CustomAdapter的{​​{1}} 然后覆盖SimpleCursorAdapter方法
bindView中,找到bindView然后处理Button

onClickEvent

public class CustomAdapter extends SimpleCursorAdapter { private Context mContext; private Context appContext; private int layout; private Cursor cr; private final LayoutInflater inflater; public CustomAdapter(Context context, int layout, Cursor c, String[] from, int[] to) { super(context, layout, c, from, to); this.layout = layout; this.mContext = context; this.inflater = LayoutInflater.from(context); this.cr = c; } @Override public View newView(Context context, Cursor cursor, ViewGroup parent) { return inflater.inflate(layout, null); } @Override public void bindView(View view, Context context, Cursor cursor) { super.bindView(view, context, cursor); ... TextView tv_Name = (TextView) view.findViewById(R.id.tv_Name); tv_Name.setText(...); ... Button btnRemove = (Button) view.findViewById(R.id.btn_remove); btnRemove.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // button click // Remove your item here } }); } }

中使用它
Activity

希望这有帮助