从preference报头开始活动 [英] Start activity from preference-headers
问题描述
我实施n层preferenceActivities 第一层preferenceActivity从preference报头加载。
第一头创建的设置,这是preferenceFragment片段。第二是一个浏览器的活动(第二距离developer.android.com一个例子),其打开指定地址。第三个我想那也将从preference报头装preferenceAtivity一个新的水平。
一两项工作正常,但第三崩溃,除了一个应用程序:
android.content.ActivityNotFoundException:无活动处理意向{行为= android.intent.action.VIEW DAT = com.mycompany.myapp.ui.My preferenceActivity}
我的preferenceActivity申报清单文件中。大概声明main_headers.xml活动是错的,但我没有发现任何引用提示如何做到这一点是正确的。试了一些变化,他们没有工作。
例如我用:<一href="http://developer.android.com/reference/android/$p$pference/$p$pferenceActivity.html">http://developer.android.com/reference/android/$p$pference/$p$pferenceActivity.html
有什么想法,为什么它不工作对我来说还是怎么下preferenceActivity可以被称为? 基本上,我只需要开始从头部的活动,这应该是很简单的,但我失去了一些东西。
公共类MySettings扩展preferenceActivity
{
@覆盖
公共无效onBuildHeaders(名单&LT;头&GT;目标)
{
loadHeadersFromResource(R.xml.main_headers,目标);
}
}
main_headers.xml:
&LT; XML版本=1.0编码=UTF-8&GT?;
&LT; preference报头
的xmlns:机器人=http://schemas.android.com/apk/res/android&GT;
&LT;头安卓标题=自定义设置
机器人:片段=com.mycompany.myapp.ui.SettingsFragment/&GT;
&LT;头安卓标题=意图
机器人:总结=启动的意图。&GT;
&LT;意图安卓行动=android.intent.action.VIEW
机器人:数据=http://www.android.com/&GT;
&LT; /头&GT;
&LT;头安卓标题=另一个preference活动&GT;
&LT;意图安卓行动=android.intent.action.VIEW
机器人:数据=com.mycompany.myapp.ui.My preferenceActivity/&GT;
&LT; /头&GT;
&LT; / preference报头&GT;
如果你想从你的第三个preference启动一个明确的活动,然后做到这一点:
&LT;意向安卓targetPackage =com.mycompany.myapp
机器人:targetClass =com.mycompany.myapp.ui.My preferenceActivity/&GT;
I'm implementing n-layer PreferenceActivities 1st layer PreferenceActivity is loaded from preference-headers.
First header creates fragment of settings which is a PreferenceFragment. Second is a browser activity (2nd is an example from developer.android.com) which opens specified Url. The third one I want to be a next level of PreferenceAtivity that also will be loaded from preference-headers.
First two work fine but 3rd is crashing an app with the exception:
"android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=com.mycompany.myapp.ui.MyPreferenceActivity} "
MyPreferenceActivity declared in the manifest file. Probably declaration of activity in main_headers.xml is wrong, but I didn't find in references any tip how to do it correct. Tried several variations, they didn't work.
Example I used: http://developer.android.com/reference/android/preference/PreferenceActivity.html
Any thoughts why it doesn't work for me or how the next PreferenceActivity can be called? Basically I just need to start an activity from header, that should be really simple but I'm missing something.
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>
If you want to start an explicit Activity from your third preference then do this:
<intent android:targetPackage="com.mycompany.myapp"
android:targetClass="com.mycompany.myapp.ui.MyPreferenceActivity" />
这篇关于从preference报头开始活动的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!