我正在实现n层PreferenceActivities
第一层PreferenceActivity从preference-headers加载.
第一层PreferenceActivity从preference-headers加载.
第一个头创建设置片段,这是一个PreferenceFragment.第二个是浏览器活动(第二个是来自developer.android.com的示例),它打开指定的Url.第三个我想成为PreferenceAtivity的下一级,它也将从preference-headers加载.
前两个工作正常,但第三个是崩溃应用程序,例外:
“android.content.ActivityNotFoundException:找不到处理Intent的Activity {act = android.intent.action.VIEW dat = com.mycompany.myapp.ui.MyPreferenceActivity}
“
在清单文件中声明的MyPreferenceActivity.可能在main_headers.xml中声明活动是错误的,但我没有在参考文献中找到任何提示如何更正.试过几种变化,它们没有用.
我使用的示例:http://developer.android.com/reference/android/preference/PreferenceActivity.html
有什么想法为什么它对我不起作用或如何调用下一个PreferenceActivity?
基本上我只需要从头开始一个活动,这应该是非常简单但我错过了一些东西.
public class MySettings extends PreferenceActivity { @Override public void onBuildHeaders(List<Header> target) { loadHeadersFromResource(R.xml.main_headers,target); } }
main_headers.xml:
<?xml version="1.0" encoding="utf-8"?> <preference-headers xmlns:android="http://schemas.android.com/apk/res/android" > <header android:title="Custom Settings" android:fragment="com.mycompany.myapp.ui.SettingsFragment" /> <header android:title="Intent" android:summary="Launches an Intent."> <intent android:action="android.intent.action.VIEW" android:data="http://www.android.com" /> </header> <header android:title="Another Preference Activity"> <intent android:action="android.intent.action.VIEW" android:data="com.mycompany.myapp.ui.MyPreferenceActivity" /> </header> </preference-headers>
解决方法
如果要从第三个首选项启动显式活动,请执行以下操作:
<intent android:targetPackage="com.mycompany.myapp" android:targetClass="com.mycompany.myapp.ui.MyPreferenceActivity" />