Lam*_*ama 64 android preferenceactivity android-intent
我想从默认的preferences.xml启动一个Activity,带有<intent>标签.活动经过充分测试,问题不在于此.(我在我的应用程序中扩展了PreferenceActivity,所以preferences.xml"来了")请查看代码,出了什么问题?
的preferences.xml:
....
<PreferenceCategory
android:title="@string/titleEtcSetup">
<PreferenceScreen
android:key="renameCourses"
android:title="@string/titleRenameCourses"
android:summary="@string/textRenameDisplayedCoursesNames">
<intent
android:action="android.intent.action.VIEW"
android:targetPackage="my.notifier.ui"
android:targetClass="my.notifier.ui.EditCoursesNamesActivity" />
</PreferenceScreen>
.....
</PreferenceCategory>
.....
Run Code Online (Sandbox Code Playgroud)
manifest.xml文件:
....
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="my.notifier.ui"....
....
<activity android:name=".EditCoursesNamesActivity" android:label="@string/titleRenameCourses">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
.....
Run Code Online (Sandbox Code Playgroud)
当我按下"renameCourses项目"时,活动没有调用,没有任何反应.LogCat是"清除",没有错误或警告.我经常搜索,我找不到解决方案,也许我只是错过了一些东西......请帮助!
Shy*_*gar 64
我遇到了同样的问题.我通过在AndroidManifest.xml中声明操作来实现此功能,如下所示:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.myapp" android:versionName="1.3" android:versionCode="4">
...
<activity android:name=".activities.MyActivity"
android:label="@string/my_activity_title"
android:theme="@android:style/Theme.Black.NoTitleBar">
<intent-filter>
<action android:name="com.example.myapp.activities.MyActivity" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)
然后在我的Preferences xml文件中:
<PreferenceCategory
android:title="@string/my_activity_title">
<PreferenceScreen
android:title="@string/my_activity_title"
android:summary="@string/my_activity_title">
<intent android:action="com.example.myapp.activities.MyActivity"/>
</PreferenceScreen>
</PreferenceCategory>
Run Code Online (Sandbox Code Playgroud)
Mic*_*ael 48
我相信<intent>标签必须在里面<Preference>,而不是<PreferenceScreen>.
<PreferenceCategory
android:title="@string/titleEtcSetup">
<Preference
android:key="renameCourses"
android:title="@string/titleRenameCourses"
android:summary="@string/textRenameDisplayedCoursesNames">
<intent
android:action="android.intent.action.VIEW"
android:targetPackage="my.notifier.ui"
android:targetClass="my.notifier.ui.EditCoursesNamesActivity" />
</Preference>
.....
</PreferenceCategory>
Run Code Online (Sandbox Code Playgroud)
BoD*_*BoD 32
警告!值targetPackage应该是应用程序的包ID,如在AndroidManifest.xml文件的根元素(在Gradle构建文件中定义)中声明的那样.它不一定与Activity类的Java包相同(人们通常将它们放在子包中"ui").
所以在你的具体情况下,我打赌你targetPackage应该是"my.notifier",而不是"my.notifier.ui"(我必须看到清单确定).
dvi*_*v90 18
无需添加IntentFilter.您可以通过完全限定名称来引用活动:
<intent android:targetPackage="my.notifier.ui"
android:targetClass="my.notifier.ui.EditCoursesNamesActivity"/>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
51024 次 |
| 最近记录: |