我正在寻找一个类似于声音设置屏幕的列表视图屏幕(在内置的设置应用程序中,见下图),即我希望一些行有文本+复选框,其他行有文本+“弹出”按钮,某些行应该只有文本等。
实现这一目标的最佳方法是什么?
正如 Falmarri 所指出的,这不是 aListView
而是PreferenceActivity
.
如果你不能使用PreferenceActivity
,最简单的方法是制作一个不同项目的列表,如果它们超出屏幕,就会滚动,就是在 aScrollView
周围放置 a LinearLayout
。你可以在这里阅读更多关于它的信息:http: //developer.android.com/reference/android/widget/ScrollView.html
下面是一个非常简单的例子:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:text="Some text label here"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<Button
android:text="A button to click"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
/>
</RelativeLayout>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="Perhaps an input field here"
/>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:text="Some more text, and a check box"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
/>
</RelativeLayout>
</LinearLayout>
</ScrollView>
现在这个列表没有包含足够的项目来滚动,但是如果你继续向它添加更多的元素,它就会在它变得比屏幕大时开始滚动。
那不是列表视图,那是PreferenceActivity
. 看一下 PrefereceActivity 类
http://developer.android.com/reference/android/preference/PreferenceActivity.html
如果您真的想为列表视图中的每一行提供不同的视图(这非常有效),您必须创建自己的扩展类BaseAdapter
。在该getView()
方法中,只需返回您要显示的视图。网上有很多例子。