如何访问不同listview行中的按钮?

时间:2017-02-22 12:53:22

标签: android listview view custom-adapter

我正在尝试通过单击按钮来更改listview行中按钮的颜色。这里我有一个由25行组成的列表视图,每行包含一个按钮。我已经使用listview的自定义适配器在每一行中放置按钮。我想知道如何做以下事情:

  1. 点击按钮,其颜色会发生变化。
  2. 在步骤(1)之后,onClickListener还将列表视图中左侧按钮的颜色更改为正常。
  3. 以上两个步骤应该发生在所有按钮上,如果点击了任何一个按钮,那么它应该是彩色的,剩下的将会恢复正常。
  4. listview就像

    按钮1

    按钮2

    按钮3

    按钮4

2 个答案:

答案 0 :(得分:0)

您必须从适配器访问您的按钮。跟着它 -

public class TestAdapter extends BaseAdapter {
    private Context ctx;
    private List<TestList> list;

    public TestAdapter(Context ctx, List<TestList> list){
        this.ctx = ctx;
        this.list = list;
    }

    @Override
    public int getCount() {
        return list.size();
    }

    @Override
    public TestList getItem(int position) {

        return list.get(position);
    }

    @Override
    public long getItemId(int position) {

        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        if (convertView == null) {
            LayoutInflater layoutInflater = (LayoutInflater) ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView = layoutInflater.inflate(R.layout.layout_item, parent, false);
        }

        Button button = (Button) convertView.findViewById(R.id.button);


        button.setText(list.get(position));


        return  convertView;
    }
}

答案 1 :(得分:0)

使用onclick listener获取自定义适配器中的按钮

String.Format