【问题标题】:How to create Settings page on Android?如何在 Android 上创建设置页面?
【发布时间】:2023-03-18 01:47:01
【问题描述】:

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

在名为preferences.xml 的/res/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 个点并点击“设置”时,我仍然看不到页面出现。有任何想法吗?谢谢你。

附:我正在使用 PreferenceFragment,因为我的最小 sdk 要求是 11。

【问题讨论】:

    标签: android settings


    【解决方案1】:

    要使用这样的菜单,您必须创建一个菜单 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);
        }
    
    }
    

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

    【讨论】:

    • 我使用了错误的方法,我应该查看“菜单”而不是“首选项”。非常感谢。查看 xml 更改并将再次尝试。谢谢。
    猜你喜欢
    • 2018-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-04
    • 1970-01-01
    • 1970-01-01
    • 2014-07-15
    • 1970-01-01
    相关资源
    最近更新 更多