我想在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.
要使用这样的菜单,您必须创建菜单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)
你应该能够以这种方式实现你所需要的,我希望这有所帮助.
| 归档时间: |
|
| 查看次数: |
4414 次 |
| 最近记录: |