如何在Android上创建设置页面?

fcu*_*hoo 2 settings android

我想在Android应用程序顶部的"设置"菜单选项中添加一个页面.该应用程序默认情况下右上角有3个点,当我点击它时,它不会去任何地方,现在我正在尝试将设置实现到我的应用程序.到目前为止我所做的是,

在/ res/xml文件夹中创建名为preferences.xml的xml文件,其中包含以下内容;

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

<preference android:key="sample" 
  android:summary="can open other activity" 
  android:title="click here">
</preference>

<edittextpreference android:key="Name" 
  android:summary="Add user Name." 
  android:title="Your Name">
</edittextpreference>

</preferencescreen>
Run Code Online (Sandbox Code Playgroud)

然后我在/ src/main/java/package /中创建了一个名为Preferences的新java类,其中包含以下内容;

package com.domain.mobile.tipcalculator.app;

import android.preference.PreferenceFragment;
import android.os.Bundle;

public class Preferences extends PreferenceFragment {
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    addPreferencesFromResource(R.xml.preferences);
  }
}
Run Code Online (Sandbox Code Playgroud)

然后根据我的理解,这就是我所需要的.我没有在编译时遇到任何错误,但是当我点击右上角的3个点并单击"设置"时,我仍然看不到页面出现.有任何想法吗?谢谢.

PS我正在使用PreferenceFragment,因为我的min sdk要求是11.

Een*_*ble 7

要使用这样的菜单,您必须创建菜单xml文件然后对其进行充气,然后在菜单项ID之间切换,以便您可以处理如下所示的点击事件:

@Override
public boolean onCreateOptionsMenu(Menu menu)
{
    MenuInflater menuInflater = getMenuInflater();
    menuInflater.inflate(R.menu.main, menu);

    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item)
{
    switch (item.getItemId())
    {
        case R.id.preferences:
            startActivity(new Intent(this, PreferenceActivity.class));
            return true;
        case R.id.settings:
            startActivity(new Intent(this, SettingsActivity.class));
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }

}
Run Code Online (Sandbox Code Playgroud)

你应该能够以这种方式实现你所需要的,我希望这有所帮助.