简体   繁体   中英

android application stopped unexpectedly counter

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM