0

我的应用程序强制在 onClick (goForIt) 上关闭。我只是想设置一个内容视图,但它强制关闭我按下按钮的时间。还有可能制作一个只有 1 个活动的应用程序吗?有人可以告诉我为什么请:

package com.XanderApps.techquizz;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.CheckBox;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

    }

     public void goForIt(View view) {
     setContentView(R.layout.question_one);

     }


    public void onCheckboxClicked(View view) {

        boolean checked = ((CheckBox) view).isChecked();

        switch(view.getId()) {
            case R.id.checkbox_meat:
                if (checked)
                    setContentView(R.layout.choice_done);






                break;
            case R.id.checkbox_cheese:
                if (checked)
                    System.exit(0);


                break;

        }
    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}
4

2 回答 2

1

如果不查看您的 Logcat,我的猜测是当您尝试访问按钮时会收到“NullPointerException”。

在尝试使用 onClick() 之前,请确保使用 findViewById 语法“实例化”按钮对象。

于 2013-09-08T16:08:58.270 回答
1

因为你还没有实例化goForItonCreateView()Activity. 因此它抛出NPE(Null Pointer Exception)

从你的布局文件中获取你id的。goForItXML

添加

public void onCreate(Bundle savedInstanceState)
{ 
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 goForit=(Button)findViewById(R.id.goForItId);
 }

然后加上onClickListenergoForIt

于 2013-09-08T16:14:57.703 回答