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

时间:2014-08-24 20:31:04

标签: android settings

我正在尝试在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>

然后我在/ 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);
  }
}

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

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

1 个答案:

答案 0 :(得分: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);
    }

}

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

相关问题