2012-07-22 81 views
1

我编写了下面的代码并编译它,但是当我运行该应用程序时,出现错误android应用程序意外停止强制关闭eclipse。我认为这是因为我没有初始化Button和TextView对象,但是当我初始化它们时,我会丢失令牌“;”错误。这个错误的原因是什么?Android Application Force关闭错误

package com.umer.first.project; 

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

public class StartingPoint extends Activity { 

int counter; 
TextView display; 
Button add, sub; 
//add= new Button(this); 
//sub=new Button(this); 
//display=new TextView(); 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_starting_point); 

    add= (Button) findViewById(R.id.aButton); 
    sub = (Button) findViewById(R.id.sButton); 
    display= (Button) findViewById(R.id.tvButton); 

    add.setOnClickListener(new View.OnClickListener() { 

     public void onClick(View arg0) { 
      // TODO Auto-generated method stub 
      counter++; 
      display.setText("The total is " + counter); 
     } 
    }); 

    sub.setOnClickListener(new View.OnClickListener() { 

     public void onClick(View arg0) { 
      // TODO Auto-generated method stub 

      counter--; 
      display.setText("You counter is " + counter); 

     } 
    }); 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.activity_starting_point, menu); 
    return true; 
} 
} 
+0

你没有初始化计数器,但你做计数器++/- 这是没有定义。 – Stuck 2012-07-22 11:12:16

+1

默认情况下java中初始化为“0”的arent'int'? – Ronnie 2012-07-22 11:14:52

+0

原始类型自动初始化为零 – 2012-07-22 12:06:44

回答

6

DisplayTextView,则无法将其转换为一个按钮。

display= (Button) findViewById(R.id.tvButton); 
+0

非常感谢。我的错误 – 2012-07-22 11:17:35

+0

为什么我们不需要初始化按钮和textview对象?如果它们没有被显式初始化,那么根据Java初始化为NULL? – 2012-07-22 12:07:39

+0

是的,当你定义'私人的TextView显示'它可以被认为是NULL,然后你用'display =(TextView)findViewById(R.id.tvbutton)' – Ali 2012-07-22 12:12:19

0

2.你有宣布display为TextView的,但初始化为Button那是一个铸造异常

display= (Button) findViewById(R.id.tvButton); /////错了。

必须是。

display= (TextView) findViewById(R.id.tvButton);

的onCreate之前执行声明视图作为实例变量()方法,然后在OnCreate初始化它们()。