2014-01-17 2 views
1

У меня ее так, что когда пользователь нажимает на элемент в представлении списка, они переносятся на другую активность, которая показывает элемент. Однако, когда я проверяю это, он выдает исключение ActivityNotFound, хотя я четко определил его в манифесте. Этого не происходит для других классов. Любые идеи о том, как исправить? Вот строка, что код, который вызывает ошибку, а именно ctx.StartActivity ...ActivityNotFound exception - активность объявлена ​​

listview.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id){ 
      xMessage = (String) parent.getItemAtPosition(position); 
      y = true; 
      setView(xMessage,R.layout.messageclicked, R.id.mS); 

      ctx.startActivity(new Intent(getActivity(),showMessage.class)); 

     } 

    }); 

А вот манифеста раздел, в котором я объявляю класс:

<activity android:name = "com......showMessage" /> 

и ... ... есть, чтобы скрыть конфиденциальную информацию. в основном это com.x.y.showRide, который является правильным файловым путем для этого действия. Вот манифеста:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="......." 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk 
     android:minSdkVersion="11" 
     android:targetSdkVersion="16" /> 

    <uses-permission android:name="android.permission.INTERNET" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:screenOrientation="portrait" 
     android:theme="@style/AppTheme" > 
     <activity 
      android:name="com.......SplashScreen" 
      android:configChanges="orientation|keyboardHidden" 
      android:label="@string/app_name" 
      android:noHistory="true" 
      android:screenOrientation="portrait" 
      android:theme="@android:style/Theme.NoTitleBar" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity 
      android:name="com.........MainMenu" 
      android:configChanges="orientation|keyboardHidden" 
      android:screenOrientation="portrait" 
      android:theme="@android:style/Theme.NoTitleBar" /> 
     <activity 
      android:name="com........Register" 
      android:configChanges="orientation|keyboardHidden" 
      android:parentActivityName=".MainMenu" 
      android:screenOrientation="portrait" 
      android:theme="@style/.....Theme" > 
      <meta-data 
       android:name="android.support.PARENT_ACTIVITY" 
       android:value=".MainMenu" /> 
     </activity> 
     <activity 
      android:name="com......SignIn" 
      android:configChanges="orientation|keyboardHidden" 
      android:parentActivityName=".MainMenu" 
      android:screenOrientation="portrait" 
      android:theme="@style/......Theme" > 
      <meta-data 
       android:name="android.support.PARENT_ACTIVITY" 
       android:value=".MainMenu" /> 
     </activity> 
     <activity android:name="com......MainNavigation" /> 
     <activity android:name="com........MainScreen" /> 
     <activity android:name="com.......MainActivity" /> 
     <activity 
      android:name="com.RuMad.......FindARide" 
      android:label="@string/title_activity_find_aride" > 
     </activity> 
     <activity android:name=".OfferRide"/> 
     <activity android:name=".RequestRide"/> 
     <activity android:name ="com......Compose"/> 
     <activity android:name ="com.......IntendedUses"/> 
     <activity android:name ="com.......showPreference"/> 
     <activity android:name = "com.......myRides"/> 
     <activity android:name = "com.......showMessage"/> 
     <activity android:name ="com......OffRe"/> 
     <activity android:name = "com......showRide" />  
     </application> 

</manifest> 
+2

Вы можете показать свой полный журнал сбоев и файл манифеста. –

+0

Пробовал с getApplicationContext() вместо getActivity()? – SoulRayder

+0

, пожалуйста, отправьте код вашей текущей активности и манифест –

ответ

1

Одним из способов решения этой проблемы может быть:

В вашей деятельности, которая принимает этот фрагмент , создайте некоторую функцию, скажем

public void startShowMessageActivity(){ 
     Intent intent = new Intent(this, showMessage.class); 
     startActivity(intent); 
} 

И в вашем классе фрагментов вызовите этот метод, использующий контекст своей деятельности по - CTX, которые я считаю (в коде)

Так, по существу, говорят, что активность является MainActivity.java

(MainActivity(ctx)).startShowMessageActivity(); 

Если вышеуказанное заявление не работает, попробуйте

MainActivity obj = (MainActivity)getActivity(); 
obj.startShowMessageActivity(); 

Надеюсь, это поможет!

+0

Когда я пытаюсь использовать ваш метод, он говорит, что мне нужно сделать метод статическим, но startActivity() не может использоваться в статическом методе, потому что он нестатический – shreyashirday

+0

Итак, что вы можете сделать, это создать экземпляр MainActivity (MainActivity object = (MainActivity) getActivity), а затем использовать этот объект вызовет функцию. (object.startShowMessageActivity();) – droidx

+0

также отредактировал ответ, включив вышеуказанный комментарий. Дайте мне знать, если есть проблемы – droidx

0

Предположим, ваша текущая деятельность MainActivity чем, пожалуйста, используйте эту строку

startActivity(new Intent(MainActivity .this,showMessage.class)) 
+1

вы уверены? он вызывает getActivity, который является афайком, доступным только в Фрагментах. Поэтому он пытается запустить Activity из фрагмента. – Frame91

+0

Нет, я не просто догадываюсь, так как он не отправил код полноты, даже я прошу, см. Комментарии. –

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