Android应用程序意外停止

时间:2012-01-11 12:41:38

标签: android eclipse windows-7

当我在eclipse中编写我的代码(以下)时,它在模拟器上出错了,你的应用程序意外停止了。 sdk没有安装错误。这是我的代码。

public class startingPoint extends Activity {
    /** Called when the activity is first created. */

    int counter1,counter2;
    Button add;
    Button sub;
    TextView display;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        counter1=counter2 = 0;
        add = (Button) findViewById(R.id.bAdd);
        add = (Button) findViewById(R.id.bSub);
        display = (TextView) findViewById(R.id.tvDisplay);
        add.setOnClickListener(new View.OnClickListener() {

            public void onClick(View arg0) {
                counter1=counter1+1;
                display.setText("Your total is "+counter1);

            }
        });
        sub.setOnClickListener(new View.OnClickListener() {

            public void onClick(View arg0) {
                counter2=counter2-1;
                display.setText("Your total is "+counter2);
            }
        });
    }
}

3 个答案:

答案 0 :(得分:1)

您要为同一个变量分配一个新值两次。

add = (Button) findViewById(R.id.bAdd);
add = (Button) findViewById(R.id.bSub);

我认为这应该是:

add = (Button) findViewById(R.id.bAdd);
sub = (Button) findViewById(R.id.bSub);

在您的代码中,sub.setOnClickListener会引发NullPointerException,因为sub为空。

答案 1 :(得分:1)

您有复制和粘贴错误,您永远不会初始化sub

add = (Button) findViewById(R.id.bAdd);
add = (Button) findViewById(R.id.bSub); // should be sub instead of add

对于下一个问题,请查看您的LogCat并发布堆栈跟踪,因为这可以帮助我们更轻松地找到错误。

答案 2 :(得分:1)

您正在获取空指针异常,因为您尚未初始化子变量。修改你的代码:

add = (Button) findViewById(R.id.bAdd);
add = (Button) findViewById(R.id.bSub);

add = (Button) findViewById(R.id.bAdd);
sub = (Button) findViewById(R.id.bSub);