包括xml布局中的simple_list_item_1,它提供有关onClick的反馈

时间:2013-01-22 10:51:15

标签: android xml android-layout

我必须重建可点击列表项的外观。

因此我有这个xml代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:orientation="vertical" >

<TextView
    android:id="@+id/tv_changeRoomLabel"
    style="?android:attr/listSeparatorTextViewStyle"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="@string/label_optionChangeName" />

<include
    android:id="@+id/tv_btn_changeRoom"
    layout="@android:layout/simple_list_item_1"
    android:background="@android:drawable/btn_default"
    android:clickable="true" />
</LinearLayout>

我在标签中尝试了很多不同的东西,但它总是一样的。单击列表项时,它不显示反馈。这意味着simple_list_item的背景颜色不会像使用普通ListView时那样改变。不过至少执行了onClick()。

有什么想法吗?

P.S我遇到过simple_layout_activated_1,但它是API 11,所以我无法使用它。我有mintarget 7。

编辑: javacode

TextView options = (TextView) findViewById(R.id.tv_btn_changeRoom);
    options.setText(m_model.getRoomName(m_roomId));
    options.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            //do sth
        }
    });

1 个答案:

答案 0 :(得分:0)

确定。根据您在讨论中的评论,我认为您在选择textView时需要自己的选择器

为此,您可以通过布局文件执行此操作。使用 selector

进行布局非常简单

textView设计修改为此。

<TextView
    android:id="@+id/tv_changeRoomLabel"
    android:background="@drawable/textBackSelector"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="@string/label_optionChangeName" />

drawable 文件夹中创建一个文件,并将其命名为textBackSelector.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_pressed="true" android:color="THE_COLOR_YOU_WANT_WHEN_PRESSED"/>
    <item android:state_selected="true" android:color="THE_COLOR_YOU_WANT_WHEN_SELECTED"/>
    <item android:color="DEFAULT_BACKGROUND_COLOR_OF_TEXTVIEW"/>

</selector>

上面的 xml 会在选中后处理你的textView背景。

希望对你有所帮助。

由于