在我的首选项文件我走这
<PreferenceCategory android:title="Title" >
<Preference android:title="title" >
<intent android:action="com.my.package.MainActivity"
/>
</Preference>
</PreferenceCategory>
该活动在清单文件中创建的,但我仍然得到
android.content.ActivityNotFoundException: No Activity found to handle Intent { act=com.my.package.MainActivity }
我如何开始从喜好屏幕活动?
我有同样的问题,但没有解决方案我搜索了计算器的解决了我activitynotfound例外。
这里是工作的解决方案,我从发现这里 :
<PreferenceScreen
android:title="@string/title_intent_preference"
android:summary="@string/summary_intent_preference">
<intent android:action="your.action.string"/>
</PreferenceScreen>
在里面的manifest.xml您的活动设置意图过滤器
<activity ...>
<intent-filter>
<action android:name="your.action.string"/>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
在您的清单:
这是你的活动叫[你的包] .MainActivity的定义。
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="example.action.ACTION_MAIN_ACTIVITY" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
另外,尝试使用PreferenceScreen:
<PreferenceScreen android:title="@string/my_location_settings">
<intent android:action="example.action.ACTION_MAIN_ACTIVITY">
</intent>
</PreferenceScreen>
有关详细信息,请访问以下链接... 起价的preferences.xml活动
这并不是开始从XML意图的正确途径。 该android:action
领域是不适合你正在试图启动活动的名称; 它描述了一种用于意图滤波器的动作(如android.intent.action.VIEW
或android.intent.action.EDIT
)指另一活性可以供应。
看到这个答案的正确使用的<intent
>,安卓动作等: https://stackoverflow.com/a/3751306/582004
确保在你的AndroidManifest.xml中,您的活动包含<intent-filter
>与<action
>你是在你的PreferenceActivity(中引用的答案,这是请求android.intent.action.VIEW
)。
试试这个
<intent android:targetPackage="your.package"
android:targetClass="your.package.yourMainClassName"/>
你应该做这样的事情在首XML中你的意图的声明:
<intent android:targetPackage="abc.def.efg"
android:targetClass="abc.def.efg.hig.yourClassName"/>
注: targetPackage
应该是一样的package
内声明的财产manifest
的标签AndroidManifest.xml
。 这有时混乱,所以看了一遍。
所以相当于AndroidManifest.xml
必须声明是这样的:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="abc.def.efg">
<application>
....
<activity android:name=".hig.yourClassName"/>
</application>
</manifest>