2016-04-27 7 views
-7

Dies ist meine soziale Fragmentierung Aktivität und es enthält Schaltflächen anzuzeigen. Wenn ich darauf klicke, will ich von einer Aktivität zur anderen wechseln, aber wenn ich sie am Telefon laue und auf die Schaltfläche klicke, steht "leider App gestoppt". Was soll ich tun, um von einem Fragment zum anderen zu wechseln. Hier ist meine soziale Frag-Code: SocialFragActivityNotFoundException, Fehler beim Starten einer Aktivität

und ich möchte von sozialen Fragment zu TechGadget Fragment auf Knopfdruck wechseln.

ist hier einloggen Katze Log Cat

meine App Navigationsleiste mit tabhlayout enthält, und ich erklärte Tasten in einem Tab ... während ich neue Aktivität öffnen möchte, wenn die Schaltfläche geklickt wird.

**@Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     View rootView = inflater.inflate(R.layout.social_layout,container,false); 
     b = (Button) rootView.findViewById(R.id.button2); 
     b.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Intent i = new Intent(getActivity().getApplicationContext(),TechGadgets.class); 
       startActivity(i); 
      } 
     }); 
     return rootView; 
    } 
}** 

es reutrns Fehler und hier einloggen Katze

04-28 01:07:07.300 17089-17089/com.example.android.techfnss E/AndroidRuntime: FATAL EXCEPTION: main 
                       Process: com.example.android.techfnss, PID: 17089 
                       android.content.ActivityNotFoundException: Unable to find explicit activity class {com.example.android.techfnss/com.example.android.techfnss.TechGadgets}; have you declared this activity in your AndroidManifest.xml? 
                        at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1885) 
                        at android.app.Instrumentation.execStartActivity(Instrumentation.java:1579) 
                        at android.app.Activity.startActivityForResult(Activity.java:3934) 
                        at android.app.Activity.startActivityForResult(Activity.java:3894) 
                        at android.support.v4.app.FragmentActivity.startActivityFromFragment(FragmentActivity.java:849) 
                        at android.support.v4.app.FragmentActivity$HostCallbacks.onStartActivityFromFragment(FragmentActivity.java:907) 
                        at android.support.v4.app.Fragment.startActivity(Fragment.java:916) 
                        at com.example.android.techfnss.SocialFragment$1.onClick(SocialFragment.java:26) 
                        at android.view.View.performClick(View.java:5207) 
                        at android.view.View$PerformClick.run(View.java:21168) 
                        at android.os.Handler.handleCallback(Handler.java:746) 
                        at android.os.Handler.dispatchMessage(Handler.java:95) 
                        at android.os.Looper.loop(Looper.java:148) 
                        at android.app.ActivityThread.main(ActivityThread.java:5443) 
                        at java.lang.reflect.Method.invoke(Native Method) 
                        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728) 
                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
04-28 01:07:10.275 17089-17089/com.example.android.techfnss I/Process: Sending signal. PID: 17089 SIG: 9 
+0

das Protokoll Katze hinterlassen bitte –

+0

und den Code, den Sie setzen das zweite activ zu starten ity –

+2

Diese Frage wurde schon oft gestellt.Sie müssen Ihre Frage mit Ihrer LogCat-Ausgabe aktualisieren. Wahrscheinlich haben Sie Ihre Aktivität nicht zum Manifest oder ähnlichem hinzugefügt (stellen Sie sicher, dass "TechGadgets" eine Aktivität ist). Verwenden Sie den aktuellen Aktivitätskontext auch beim Erstellen des Intent-Anwendungskontexts. Edit: Es scheint, dass TechGadget ein Fragment sein kann. Das Wechseln zwischen Fragmenten wird anders gehandhabt als Aktivitäten, sehen Sie sich deren Dokumentation an: http://developer.android.com/guide/components/fragments.html – chRyNaN

Antwort

0

Diese Frage zig Male gefragt worden ist (zumindest), so dass Sie eine Antwort von einer Google-Suche gefunden haben könnten. Aber hier ist, wie Sie es tun ...

Natürlich würden Sie die entsprechenden Werte durch entsprechende in Ihrem eigenen Code ersetzen.

Wenn Sie nach einer spezifischeren Antwort suchen, stellen Sie eine spezifischere Frage (mit Beweisen, dass Sie Nachforschungen angestellt haben, um die Antwort selbst zu finden, oder zumindest eine Protokollspur von dem Absturz, den Sie erhalten).

+0

Dies funktioniert nicht, da ich SocialFrag im Registerkartenlayout verwende. – Nikhil

+0

@Nikhil Okay. In diesem Fall ** poste auch deinen Code **, damit wir alle genau sehen können, woher dein Problem kommt. –

0

Verwendung dieser Code -

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

hier OtherActivity.class ist der Name der Aktivität, die Sie gehen wollen, und Mainactivity.this ist Ihre aktuelle Aktivität.

0

Sie benötigen setOnClickListener auf Ihrer Taste innerhalb onViewCreated Methode, wie diese addieren - das hilft

public void onViewCreated(View view, Bundle savedInstanceState){ 
    b = (Button)view.findViewById(R.id.button2); 
    b.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      Intent intent = new Intent(getContext(), 2nd_Activity.class); 
      startActivity(intent); 
     } 
    }); 
} 

Hoffnung!

0

Sie können den Kontext an das Fragment übergeben, wenn Sie es erstellen und es dann dort referenzieren. Oder Sie können einfach getActivity() anstelle von getActivity().getApplicationContext() verwenden, aber die erste Option ist die beste, weil manchmal getActivity() einfach nicht funktioniert. Übergeben Sie den Kontext immer an das Fragment.

0

klar sagt, dass die Tätigkeit nicht im Manifest deklariert wird, statt Fragmente erstrecken, auf jede Art von Tätigkeit erweitern und diese Zeile in Ihrem Manifest im Innern des <aplication> </aplication> Körper hinzufügen:

<activity android:name=".TechGadgets"></activity> 

Beispiel:

<aplication> 
... 

<activity android:name=".TechGadgets"></activity> 

... 
</application> 

und schließen Sie bitten, dies bitte