I'm trying to produce a counter application for android. It has 5 TextViews for showing the number, a picture of a counter and 3 buttons. Button for adding 1 to the number, button for reducing 1 from the number and reset button. As I launch the application I immediately recieve a message that the application stopped unexpectedly. I'm adding my code for the java file. Can someone help me, please?
Counter.java:
public class Counter extends Activity{
public int num=0;
public TextView txt1,txt2,txt3,txt4,txt5;
Button btnPlus, btnMinus, btnReset;
public void addOne(){
num++;
if(num >= 100000)
num = 0;
}
public void redOne(){
num--;
if(num <= -1)
num = 0;
}
public void reset(){
num = 0;
}
public void build(){
txt1.setText(num%10);
txt2.setText(num/10%10);
txt3.setText(num/100%10);
txt4.setText(num/1000%10);
txt5.setText(num/10000%10);
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_counter);
txt1 = (TextView) findViewById(R.id.num1);
txt2 = (TextView) findViewById(R.id.num2);
txt3 = (TextView) findViewById(R.id.num3);
txt4 = (TextView) findViewById(R.id.num4);
txt5 = (TextView) findViewById(R.id.num5);
build();
btnPlus = (Button) findViewById(R.id.plus);
btnMinus = (Button) findViewById(R.id.minus);
btnReset = (Button) findViewById(R.id.reset);
btnPlus.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
addOne();
build();
}
});
btnMinus.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
redOne();
build();
}
});
btnReset.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
reset();
build();
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_counter, menu);
return true;
}
}
When you are calling settext you need to pass a String value.
Use this instead:
txt1.setText(num%10+"");
txt2.setText(num/10%10+"");
txt3.setText(num/100%10+"");
txt4.setText(num/1000%10+"");
txt5.setText(num/10000%10+"");
And as mentioned above you should also check that you are not dividing by zero.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.