Я написал следующий код и скомпилировал его, но когда я запустил приложение, я получил ошибку android, приложение неожиданно остановило принудительное закрытие eclipse. Я думал, что это потому, что я не инициализировал объекты Button и TextView, но когда я их инициализирую, я получаю пропущенный токен ";" ошибка. В чем причина этой ошибки.
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;
}
}
Display
- это TextView
, вы не можете наложить его на кнопку.
display= (Button) findViewById(R.id.tvButton);
2. Вы объявили display
как TextView, но инициализировали как Button
, это исключение каста.
display= (Button) findViewById(R.id.tvButton);
///// Неправильно.
Должно быть.
display= (TextView) findViewById(R.id.tvButton);
1. Сделайте объявление представлений как переменные экземпляра перед методом onCreate(), а затем инициализируйте их в onCreate().
int
в java по умолчанию не установлен в0
?