当我在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);
}
});
}
}
答案 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);