2016-05-07 19 views
-1

私はActivityクラス内のTextViewのクリックでフラグメントの活動を開始したいが、私はexception.Iの下に取得Androidに新しいです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'は実際には' Activity'ですか?もしそうなら、スタックトレースの最初の行で質問に耳を傾けましたか? - 'あなたのAndroidManifest.xmlでこのアクティビティを宣言しましたか? ' –

+0

いいえ、4つのタブがあり、それらのタブのアクティビティーはフラグメントアクティビティです。tabdisplayアクティビティにはすべてmanifest.xmlファイル内の4つのtabs.soが含まれますtabDisplayactvityのみ –

+2

' Fragment'は「活動」ではない。あなたは 'startActivity()'で 'Fragment'をロードしません。 –

答えて

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

が含まれているはずです"フラグメントを初期化するアクティビティレイアウトの下部にこれを含めます" – Max

関連する問題