大家好,我正在努力解决一个奇怪的问题。 我将ViewFlipper更改为ViewPager,因为我的应用程序崩溃了。我发现它不是Viewpager崩溃而是button.setOnClickListener方法。我注释掉了其他一切,所以我注意到如果我用这种方法评论我的两个按钮,应用程序工作正常。而且它不是onClick()里面的东西,我把它揪出来它即使它是空的也会崩溃。但是这里有一些与我战斗的代码:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
MyPagerAdapter adapter = new MyPagerAdapter();
ViewPager myPager = (ViewPager)findViewById(R.id.pager);
myPager.setAdapter(adapter);
myPager.setCurrentItem(1);
new Toolbox();
push = (Button)findViewById(R.id.pushbutton);
push.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
head=head_field.getText().toString();
note=note_field.getText().toString();
try {
Toolbox.createTask(userToken,task, Dashboard_id, head, note, service);
head_field.setText("");
note_field.setText("");
} catch (ProducteevException e) {
return;
}
}
});
这是按钮xml摘录:
<Button
android:id="@+id/pushbutton"
android:layout_width="200dp"
android:layout_height="200dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="35dp"
android:background="@drawable/push_button" />
这里是LogCat
01-12 20:50:24.402: W/dalvikvm(28405): threadid=1: thread exiting with uncaught exception (group=0x40015578)
01-12 20:50:24.402: E/AndroidRuntime(28405): FATAL EXCEPTION: main
01-12 20:50:24.402: E/AndroidRuntime(28405): java.lang.RuntimeException: Unable to start activity ComponentInfo{producteev.push/producteev.push.Producteev_pushActivity}: java.lang.NullPointerException
01-12 20:50:24.402: E/AndroidRuntime(28405): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1651)
01-12 20:50:24.402: E/AndroidRuntime(28405): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
01-12 20:50:24.402: E/AndroidRuntime(28405): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
01-12 20:50:24.402: E/AndroidRuntime(28405): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
01-12 20:50:24.402: E/AndroidRuntime(28405): at android.os.Handler.dispatchMessage(Handler.java:99)
01-12 20:50:24.402: E/AndroidRuntime(28405): at android.os.Looper.loop(Looper.java:123)
01-12 20:50:24.402: E/AndroidRuntime(28405): at android.app.ActivityThread.main(ActivityThread.java:3687)
01-12 20:50:24.402: E/AndroidRuntime(28405): at java.lang.reflect.Method.invokeNative(Native Method)
01-12 20:50:24.402: E/AndroidRuntime(28405): at java.lang.reflect.Method.invoke(Method.java:507)
01-12 20:50:24.402: E/AndroidRuntime(28405): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
01-12 20:50:24.402: E/AndroidRuntime(28405): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
01-12 20:50:24.402: E/AndroidRuntime(28405): at dalvik.system.NativeStart.main(Native Method)
01-12 20:50:24.402: E/AndroidRuntime(28405): Caused by: java.lang.NullPointerException
01-12 20:50:24.402: E/AndroidRuntime(28405): at producteev.push.Producteev_pushActivity.onCreate(Producteev_pushActivity.java:122)
01-12 20:50:24.402: E/AndroidRuntime(28405): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
01-12 20:50:24.402: E/AndroidRuntime(28405): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615)
01-12 20:50:24.402: E/AndroidRuntime(28405): ... 11 more
如果有人知道这个问题会很棒。
答案 0 :(得分:0)
确保您的按钮ID正确,似乎您的findViewById()返回null ...
答案 1 :(得分:0)
由于我无法看到您的整个代码,因此很难确定,但似乎错误可能会在您的堆栈跟踪创建时被抛出。由于onClick()方法中没有任何反应,我能想到的另一件事是push
必须为null,这与您发布的代码无关。如果这是问题,可能会导致ID不正确(传递给findViewById()
调用的那个),或者,如果编译器看起来没有你传入的id(我认为它不会编译否则)它可能是(Button)
的投射不能正常工作。我会检查您R.id.pushbutton
的实际班级类型的类型,并确保它是(Button)
。