1

Android用のカウンターアプリケーションを作成しようとしています。番号を表示するための5つのTextView、カウンターの画像、および3つのボタンがあります。数字に1を足すためのボタン、数字から1を減らすためのボタン、リセットボタン。アプリケーションを起動すると、アプリケーションが予期せず停止したというメッセージがすぐに表示されます。Javaファイルのコードを追加しています。誰か助けてもらえますか?

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;
    }
}
4

1 に答える 1

1

settextを呼び出すときは、文字列値を渡す必要があります。

代わりにこれを使用してください:

    txt1.setText(num%10+"");
    txt2.setText(num/10%10+"");
    txt3.setText(num/100%10+"");
    txt4.setText(num/1000%10+"");
    txt5.setText(num/10000%10+"");

また、上記のように、ゼロ除算を行っていないことも確認する必要があります。

于 2012-10-23T20:27:05.897 に答える