2016-05-07 3 views
-1

Я хочу, чтобы начать фрагмент активности в TextView мыши в классе деятельности, но я получаю ниже exception.I новичок в андроид пожалуйста help.This мой код.ActivityNotFoundException: Не удалось найти явный деятельности класса

Intent intent=new Intent(this,ThreeFragment.class); 
    startActivity(intent); 

и получил ниже исключения.

android.content.ActivityNotFoundException: Unable to find explicit activity class {com.example.siluni.myapplication/com.example.siluni.myapplication.ThreeFragment}; have you declared this activity in your AndroidManifest.xml? 
     at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1791) 
     at android.app.Instrumentation.execStartActivity(Instrumentation.java:1513) 
     at android.app.Activity.startActivityForResult(Activity.java:3933) 
     at android.app.Activity.startActivityForResult(Activity.java:3881) 
     at android.app.Activity.startActivity(Activity.java:4204) 
     at android.app.Activity.startActivity(Activity.java:4172) 
     at com.example.siluni.myapplication.SheduleActivity.SaveShedule(SheduleActivity.java:178) 
     at com.example.siluni.myapplication.SheduleActivity$5.onClick(SheduleActivity.java:150) 
     at android.view.View.performClick(View.java:5076) 
     at android.view.View$PerformClick.run(View.java:20279) 
     at android.os.Handler.handleCallback(Handler.java:739) 
     at android.os.Handler.dispatchMessage(Handler.java:95) 
     at android.os.Looper.loop(Looper.java:135) 
     at android.app.ActivityThread.main(ActivityThread.java:5930) 
     at java.lang.reflect.Method.invoke(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:372) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1405) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1200) 
+0

Действительно ли 'ThreeFragment' фактически' Активность'? Если да, вы прислушались к вопросу в первой строке трассировки стека? - «Вы объявили эту активность в своем AndroidManifest.xml?» –

+0

Нет, у меня есть 4 вкладки, и эти действия на вкладке являются действиями фрагмента. Активность Tabdisplay содержит все 4 tabs.so в файле manifest.xml, содержащем только tabDisplayactvity –

+2

«Фрагмент» а не «Активность». Вы не загружаете «Фрагмент» с помощью функции startActivity(). –

ответ

3

если ThreeFragment расширяет фрагмент, то вы должны инициализировать его, как этот

FragmentManager fragmentManager = getFragmentManager(); 
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); 
Fragment fragment = new ThreeFragment(); 
fragmentTransaction.replace(R.id.fragment_container, fragment); 
fragmentTransaction.commit(); 

UPDATE:

R.id.fragment_container является FrameLayout, который будет содержать фрагмент.

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

<FrameLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/fragment_container" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"/> 

и если ThreeFragment расширяет AppCompatActivity или Activity на в манифесте вам необходимо включить его, как это

<activity 
     android:name=".ThreeFragment" 
     android:label="@string/app_name"> 
</activity> 
+0

Следует упомянуть, что 'R.id.fragment_container' должен быть частью макета активности –

+0

Я пробовал это, пожалуйста, скажите мне, что R.id.fragment_container должен содержать в каком макете .ThreeFragment или мой макет активности –

+0

в моем ответе я упомянул Msgstr "Включить это в нижней части макета активности, в котором вы хотите инициализировать фрагмент" – Max

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