0

Я экспериментирую, указывая свое собственное действие для использования в неявном намерении. В одном пакете я определяю два действия. ActivityTwo вызывается из onClick() в ActivityOne, используя неявное намерение с действием «course.labs.activitylab.MY_ACTION». Но я не смог заставить его работать.Неявное намерение с заданным пользователем действием

В strings.xml:

<string name="myfunnystring">course.labs.activitylab.MY_ACTION</string> 

В AndroidManifest.xml:

<activity 
     android:name=".ActivityTwo" 
     android:label="@string/title_activity_activity_two" > 
     <intent-filter> 
      <action android:name="@string/myfunnystring" /> 
     </intent-filter> 
    </activity> 

В OnClick() в OnClickListener() в OnCreate() в ActivityOne.java:

  Intent intent = new Intent(); 
      intent.setAction(getString(R.string.myfunnystring)); 
      intent.setFlags(Intent.FLAG_DEBUG_LOG_RESOLUTION); 
      startActivity(intent); 

Программа вылетает из эмулятора, и я нахожу это в окне logcat:

android.content.ActivityNotFoundException: нет активности найдено обрабатывать Intent {акт = course.labs.activitylab.MY_ACTION FLG = 0x8}

Что я делаю неправильно?

ответ

2

Добавить категорию по умолчанию в свой фильтр намерений.

<intent-filter> 
    <action android:name="course.labs.activitylab.MY_ACTION" /> 
    <category android:name="android.intent.category.DEFAULT"/> 
</intent-filter> 
+0

Я думаю, вы не можете использовать строковый ресурс в имени действия. – tachyonflux

+0

Это исправление. Хорошо, поэтому я допустил две ошибки. Я использовал строковый ресурс в имени действия в фильтре. IDK, почему это не должно работать, и если это не сработает, IDK, почему он не обнаружен во время сборки. И я не смог присвоить категорию фильтру намерения. Спасибо, караоке. –

+0

Эти два требования объясняются на http://developer.android.com/guide/components/intents-filters.html –

Смежные вопросы