В моем файле предпочтений я иду
<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 }
Как начать работу с экрана настроек?
У меня была такая же проблема, но ни одно из решений, которые я искал в stackoverflow, не разрешило мою активность nottound Exception.
Вот рабочее решение, которое я нашел здесь :
<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
>, android: действие и т. Д .: 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"/>