我有一个listview,其中包含一个包含这些视图的arrayadapter
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<CheckedTextView
android:id="@android:id/text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/list_item"
android:gravity="center_vertical"
android:minHeight="?android:attr/listPreferredItemHeightSmall"
android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
android:paddingStart="?android:attr/listPreferredItemPaddingStart"
android:textAppearance="?android:attr/textAppearanceListItemSmall" >
</CheckedTextView>
</LinearLayout>
我希望在激活时在文本视图的左侧添加X填充,并在未选中时删除该填充。填充不会更新。我该如何管理?
答案 0 :(得分:1)
由于CheckedTextView
位于ListView
之内,您可以使用AdapterView.OnItemClickListener
方法在ListView
上设置setOnItemSelectedListener (AdapterView.OnItemSelectedListener listener)
并覆盖onItemClick(AdapterView<?> parent, View view, int position, long id)
方法。
在onItemClick()
方法中,您可以查看哪个是被点击的视图(通过比较显示所点击的视图位置的position
变量与{{1}确定它们是否匹配的实际位置)。然后,如果您的用户确实点击了CheckedTextView
,请检查CheckedTextView
是否属实。如果是,则以编程方式更改填充,否则将其保留。