我有使用片段的活动。但如果我想使用OnClickListener,我的应用程序就破解了。如果我不使用OnClickListener,一切都很好。我怎么解决这个问题 ?这是我的代码。
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);
}
});
}
}
这是我的logcat:
D / gralloc_goldfish(796):未检测到GPU仿真的仿真器.D / AndroidRuntime(923):关闭VMW / dalvikvm(923):threadid = 1:线程退出时未捕获异常(组= 0x41465700)致命异常:mainjava .lang.RuntimeException:无法启动活动ComponentInfo {bot / bot.MeinActivity}:java.lang.NullPointerExceptionat android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211)在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java: 2261)在Android.app.Handler.dispatchMessage(Handler.java:99)的android.app.ActivityThread.access $ 600(ActivityThread.java:141)android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1256)在android.os.Looper.loop(Looper.java:137)的android.app.ActivityThread.main(ActivityThread.java:5103),位于java.lang.reflect的java.lang.reflect.Method.invokeNative(Native Method) .Method.invoke(Method.java:525)位于com.android.internal.os.Zygote的com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:737)在dalvik.system.NativeStart.main(本地方法)的Init.main(ZygoteInit.java:553)引起:android.app.Activity.performCreate中的java.lang.NullPointerExceptionat bot.MeinActivity.onCreate(MeinActivity.java:49) (Activity.java:5133)android.app.Anstrumentation.callActivityOnCreate(Instrumentation.java:1087)android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
答案 0 :(得分:0)
您未在活动的onCreate()
中设置内容视图,因此无法找到您的按钮,因此btn
为空。
super.onCreate(savedInstanceState);
setContentView(R.layout.yourlayout); // <-- add this line
如果您的按钮位于片段中,则应将OnClickListener
的代码移动到片段类。