我正在寻找类似于声音设置屏幕的列表视图屏幕(在内置的设置应用中,见下图),即我想要一些行有文本+复选框,其他行有文字+“弹出“按钮,某些行应该只有文本等。
实现这一目标的最佳方法是什么?
答案 0 :(得分:2)
正如Falmarri所指出,这不是ListView
而是PreferenceActivity
。
如果您无法使用PreferenceActivity
,那么制作不同项目列表的最简单方法就是在ScrollView
围绕LinearLayout
{ {1}}。您可以在此处详细了解: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>
现在这个列表中没有足够的项目可以滚动,但是如果你不断添加更多的元素,它会在它变得比屏幕大的时候开始滚动。
答案 1 :(得分:1)
这不是列表视图,而是PreferenceActivity
。看看PrefereceActivity类
http://developer.android.com/reference/android/preference/PreferenceActivity.html
如果你真的想为列表视图中的每一行设置不同的视图(这是非常有效的),你必须创建自己的扩展BaseAdapter
的类。在getView()
方法中,只需返回要显示的视图即可。网上有很多例子。