单击按钮返回listview项的id

时间:2017-07-25 21:34:47

标签: android listview android-arrayadapter


我想在android studio中自定义listview,每个项目都有一个按钮。通过单击此按钮,它应该将列表视图中项目的ID返回到主活动中 我最近添加了布局xmls,我唯一的问题是在MainActivity.java和它所需的类中。

1 个答案:

答案 0 :(得分:0)

在适配器的getView方法中设置按钮的标签,例如: -

    public View getView(int position, View convertview, ViewGroup parent) {


        Button yourbutton = (Button) view.findViewById(R.id.yourbuttonid);
        yourbutton.setTag(position);
        .......

在按钮的onClick处理中,使用int position = (int) view.getTag();来检索与数组索引相关的位置。

在ListView中处理按钮onClick有两种主要方式

1)指定要在Button的XML中使用的方法(仅限API级别4)并在调用活动中提供处理方法: -

示例XML: -

<Button android:id="@+id/mybutton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Click"
    android:onClick="myButtonClicked" />

包含各自ListView的活动中的示例处理程序

    .....
    public myButtonClicked(View view) {
        int position = (int) view.getTag();
        ....
    }

2)包括在onCLick ListView adapter方法中设置监听器和getView处理。

示例: -

        public View getView(int position, View convertview, ViewGroup parent) {


            Button yourbutton = (Button) view.findViewById(R.id.yourbuttonid);
            yourbutton.setTag(position);
            yourbutton.setOnClickListener(new OnClickListener() {
               public void onClick(View view) {
                   int position = view.getTag();
               }
            });

您可能希望了解这些内容,更详细地介绍上述内容

我个人觉得XML方法非常方便。我使用Style作为按钮的基础(我使用TextView作为按钮),因此我只需要将一个方法(在Style中设置)合并到相应的活动中。这甚至可以很好地应对每个ListView项目的多个按钮。