我正在尝试在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。
答案 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);
}
}
你应该能够以这种方式实现你所需要的,我希望这会有所帮助。