Petr Karel
Petr Karel

Reputation: 53

OnClickListener don´t work in activity with fragment

I have activity that uses fragment. But if I want use OnClickListener, my app crahed. If I don´t use OnClickListener, everything is ok. How can I solve this problem ? Here is my code.

public class MeinActivity extends Activity {
    public static Context appContext;


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);


  FragmentManager fragmentManager = getFragmentManager();
    FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();   
    MainFragment meinfragment = new MainFragment();    
    fragmentTransaction.replace(android.R.id.content, meinfragment);             
    fragmentTransaction.commit();


   Button btn = (Button) findViewById(R.id.leftButton);
   btn.setOnClickListener(new OnClickListener() {
       public void onClick(View v) {
           Intent intent = new Intent(MeinActivity.this, SearchActivity.class);
           startActivity(intent);

       }
       });



    }

}

And here is my logcat:

D/gralloc_goldfish(796): Emulator without GPU emulation detected.D/AndroidRuntime(923): Shutting down VMW/dalvikvm(923): threadid=1: thread exiting with uncaught exception (group=0x41465700)FATAL EXCEPTION: mainjava.lang.RuntimeException: Unable to start activity ComponentInfo{bot/bot.MeinActivity}: java.lang.NullPointerExceptionat android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211)at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)at android.app.ActivityThread.access$600(ActivityThread.java:141)at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)at android.os.Handler.dispatchMessage(Handler.java:99)at android.os.Looper.loop(Looper.java:137)at android.app.ActivityThread.main(ActivityThread.java:5103)at java.lang.reflect.Method.invokeNative(Native Method)at java.lang.reflect.Method.invoke(Method.java:525)at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)at dalvik.system.NativeStart.main(Native Method)Caused by: java.lang.NullPointerExceptionat bot.MeinActivity.onCreate(MeinActivity.java:49)at android.app.Activity.performCreate(Activity.java:5133)at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)

Upvotes: 0

Views: 661

Answers (1)

Szymon
Szymon

Reputation: 43023

You didn't set your content view in your activity's onCreate() so your button cannot be found and hence btn is null.

super.onCreate(savedInstanceState);
setContentView(R.layout.yourlayout);  // <-- add this line

If your button is in a fragment, you should move the code for OnClickListener to the fragment class.

Upvotes: 0

Related Questions