Android中ListView项目内的按钮 - 如何使其成为onItemClickListener的一部分

时间:2014-08-08 15:43:40

标签: android listview button

我正在构建一个包含TextView和按钮的ListView。 我只需按下按钮,用户就会知道他可以按下列表项。 但是他强迫一个人为按钮定义特定的OnClick监听器并编写大量代码或者创建一个看起来像按钮的TextView,但这会导致按钮中的文本在没有点击内部时变为灰色。

以下是列表项的资源文件:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/channelListEntry"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="center_vertical|left"
    android:background="@color/white"
    android:orientation="vertical" 
    >

        <RelativeLayout
        android:orientation="horizontal" 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="16dp"
        android:layout_marginTop="20dp"
        android:layout_marginBottom="20dp"              
        >

            <TextView
            android:id="@+id/titleText"
            android:layout_height="fill_parent"
            android:layout_width="wrap_content"
            android:layout_alignParentLeft="true"
            />

            <TextView 
            android:id="@+id/channelButton"
            android:layout_height="fill_parent"
            android:layout_width="wrap_content"
            android:layout_alignParentRight="true"
            android:background="@drawable/search_result_button"
            android:layout_marginRight="10dp"
            android:padding="2dp"
            android:text="   Play   "                   
            />

        </RelativeLayout>

</LinearLayout>

3 个答案:

答案 0 :(得分:0)

要将onClickListener添加到xml代码中定义的按钮,请将以下内容插入到活动中:

yourButton = (Button) findViewById(R.id.YourButton);
yourButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View arg0) {
        // your code here
    }

}

并添加到xml:

<Button android:id="@+id/Yourbutton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello, I am a Button" />

根据需要调整按钮值

答案 1 :(得分:0)

为什么要添加按钮告诉用户他可以点击列表?您已经可以点击列表视图

listView.setOnItemClickListener(new OnItemClickListener() {


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

           // ListView Clicked item index
           int itemPosition     = position;

           // put the other code here for the item in listview


          }

     }); 

如果需要按此按钮,请尝试使用自定义列表视图,并根据需要向列表添加任意数量的视图。

答案 2 :(得分:0)

我找到了解决方案。

只需将以下内容添加到名为channelButton的TextView中:

android:textColor="#000000"

这使得TextView(看起来像按钮)的文本颜色始终为黑色(而且不仅在单击项目时)。

SoftCoder:在我们的应用程序中,我们担心用户只会查看列表条目,并且不知道单击该项目时需要采取的操作。 所以我所做的是使用带有按钮形状的TextView。