Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 向PreferenceActivity添加标题_Android - Fatal编程技术网

Android 向PreferenceActivity添加标题

Android 向PreferenceActivity添加标题,android,Android,所以我发现android PreferenceScreen的风格不是很友好。在显示首选项之前,是否有一种半简单的方法将标题(比如图像)添加到首选项屏幕?我目前正在扩展PreferenceActivity类,但是有人能告诉我如何在标题中添加线性布局吗 谢谢在我的应用程序中,我完全按照您的要求这样做: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState

所以我发现android PreferenceScreen的风格不是很友好。在显示首选项之前,是否有一种半简单的方法将标题(比如图像)添加到首选项屏幕?我目前正在扩展PreferenceActivity类,但是有人能告诉我如何在标题中添加线性布局吗


谢谢

在我的应用程序中,我完全按照您的要求这样做:

@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    addPreferencesFromResource(R.xml.preferences);
    setContentView(R.layout.preferences_layout);
}
preferences\u layout.xml
文件中:

<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="fill_parent"
android:layout_width="fill_parent">

<ImageView
    android:id="@+id/myCustomImageView"
    android:src="@drawable/xmas"
    android:layout_width="fill_parent"
    android:layout_height="50dp"
/>
<ListView 
    android:id="@android:id/list" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"
    android:layout_below="@+id/myCustomImageView"
/>

</RelativeLayout>

请注意xml中
ListView
上设置的
android:id

现在,您可以控制首选项屏幕的布局,只要使用内置首选项,就可以使用首选项的默认样式。

Mircea方法有一个限制:您不能删除顶部的标题:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    requestWindowFeature(Window.FEATURE_NO_TITLE);
    ...

这导致“
requestfeature()
必须在添加内容之前调用”

“因此我发现android PreferenceScreen的风格不太友好”——这是因为您应该让它们单独使用。
PreferenceScreen
的全部要点是让它们在不同的应用程序中看起来相同。谷歌没有像苹果那样执行人机界面准则;然而,精明的开发人员仍将尽可能与其他应用程序和操作系统保持一致。用户在博客评论和讨论板上嘲笑Android开发人员,因为他们不这么做,所以开发人员给了Android一个坏名声。请不要使用
首选项屏幕
样式。是的,我知道。老实说,我不想触摸PreferenceScreen,但这并不能阻止客户的要求。然后让他们看一下这个StackOverflow评论。对客户来说:你并不比你的用户更重要,也不比平台更重要。Commonware就是一个很好的例子。与iPhone不同,Android针对不同的设备。使用默认设置意味着您的应用程序将在这些设备上工作,自定义客户端请求的首选项屏幕可能会导致特定设备出现问题。你的客户了解这一点吗?是的,他们了解,但是客户是一家大公司,有自己的一套“对”和“错”的想法。解决方案是使用ListView创建大量的活动,这些活动模仿偏好活动。基本上,我必须编写自己的listview、listview项、列表视图适配器、单击对话框,以及手动保存和检索SharedReference的代码。你得做你该做的。哦,我刚从你的评论中注意到,你已经用很难的方式解决了它。嗯……也许有人在寻找解决方案是的,有人这样做了:)这个解决方案非常有效,谢谢!正是我需要的。谢谢。这将在ICS设备和平板电脑上崩溃@Profete162它在ICS上不会崩溃。在调用
super.onCreate
之前,您不能调用
requestWindowFeature
吗?