【问题标题】:Indication about clicking a button in listView关于单击 listView 中的按钮的指示
【发布时间】:2018-05-05 13:31:11
【问题描述】:

我使用以下代码:

ListView simpleList = (ListView) findViewById(R.id.items);

CustomAdapter customAdapter = new CustomAdapter(getApplicationContext(), itemsList, quantityList,this);

simpleList.setAdapter(customAdapter);
simpleList.setOnItemClickListener(new AdapterView.OnItemClickListener() {

    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

    }

每一行如下图所示

我想知道用户何时单击加号/减号按钮。 我怎样才能做到这一点?我已经启动了setOnItemClickListener的功能,但是不知道怎么计数。

【问题讨论】:

标签: android listview listviewitem


【解决方案1】:

你也可以通过修改后续代码来实现你的接口

你必须创建类的接口

public interface MyCustomAdpClick {
    public void plusClick();// You can pass argument whatever you needed

    public void minusClick();// You can pass argument whatever you needed
}

修改你设置的适配器代码如下

 ListView simpleList = (ListView) findViewById(R.id.items);
    List<String> lis1 = new ArrayList<>();// change to your list of items here
    CustomAdapter customAdapter = new CustomAdapter(getApplicationContext(), lis1, lis1, new MyCustomAdpClick() {
        @Override
        public void plusClick() {// handle plus event
        }

        @Override
        public void minusClick() {//handle minus event
        }
    });

在您的自定义适配器中,您必须修改以下一个

    Context context;
    MyCustomAdpClick myCustomAdpClick;
    List<String> lis1;
    List<String> lis2;

        public CustomAdapter(Context context, List<String> lis1, List<String> lis2, MyCustomAdpClick myCustomAdpClick) {
        this.context = context;
        this.lis1 = lis1;
        this.lis2 = lis2;

        this.myCustomAdpClick = myCustomAdpClick;
    }

现在您可以在适配器 getview 方法中为每个按钮使用 click 事件

 buttonPlus.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            myCustomAdpClick.plusClick();
        }
    });
            buttonMinus.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {

                    myCustomAdpClick.minusClick();
                }
            });

【讨论】:

    【解决方案2】:

    在您的 CustomAdapter 类中,在此处声明 2 个按钮。

    将此添加到CustomAdapter

    private static class MyViews{
        Button btn1;
        Button btn2;
    }
    
    
      @Override
    public View getView(int position, View convertView, ViewGroup parent) {
    
       final MyViews views;
    
        if (convertView == null)
        {
            views.btn1= (Button) convertView.findViewById(R.id.yourbutton1);
            views.btn2= (Button) convertView.findViewById(R.id.yourbutton2);
    
            result=convertView;
    
            convertView.setTag(views);
        }
        else
        {
            views = (MyViews) convertView.getTag();
            result=convertView;
        }
    
        btn1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //your code...
            }
        });
    
        btn2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //your code...
            }
        });
    
        return convertView;
    
    }
    

    并控制CustomAdapter 类中的所有数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-24
      • 1970-01-01
      • 2012-07-25
      • 1970-01-01
      相关资源
      最近更新 更多