Reputation: 53
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
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