1

私は初心者です。検索機能を使用して答えを得ましたが、何も見つかりませんでした。そのため、コードを Android スタジオに持っており、nexus 7 を実際のデバイスとしてテストしてテストしましたが、実行しようとするたびにそれは、それが直接終了したことを示すメッセージが私のnexusに表示されます:S
ボタンをクリックすると、数値がTextviewに追加されます。ここでの電卓の基本は私のコードです:

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

public class MainActivity extends Activity {
int actuel;
Button btn0 = (Button) findViewById(R.id.btn0);
Button btn1 = (Button) findViewById(R.id.btn1);
Button btn2 = (Button) findViewById(R.id.btn2);
Button btn3 = (Button) findViewById(R.id.btn3);
Button btn4 = (Button) findViewById(R.id.btn4);
Button btn5 = (Button) findViewById(R.id.btn5);
Button btn6 = (Button) findViewById(R.id.btn6);
Button btn7 = (Button) findViewById(R.id.btn7);
Button btn8 = (Button) findViewById(R.id.btn8);
Button btn9 = (Button) findViewById(R.id.btn9);
TextView output = (TextView) findViewById(R.id.textView);

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    btn0.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            addNumbers(0,view);
        }
    });
    btn1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            addNumbers(1,view);
        }
    });
    btn2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            addNumbers(2,view);
        }
    });
    btn3.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            addNumbers(3,view);
        }
    });
    btn4.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            addNumbers(4,view);
        }
    });
    btn5.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            addNumbers(5,view);
        }
    });
    btn6.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            addNumbers(6,view);
        }
    });
    btn7.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            addNumbers(7,view);
        }
    });
    btn8.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            addNumbers(8,view);
        }
    });
    btn9.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            addNumbers(9,view);
        }
    });

}

private final void addNumbers(int num, View view){
    actuel = actuel * 10 + num;
    output.setText(String.valueOf(actuel));
}

}
4

1 に答える 1

2

コードを次のように更新します。

 public class MainActivity extends Activity {
 int actuel;
 Button btn0 = null;
 Button btn1 = null;
 Button btn2 = null;
 Button btn3 = null;
 Button btn4 = null;
 Button btn5 = null;
 Button btn6 = null;
 Button btn7 = null;
 Button btn8 = null;
 Button btn9 = null;
 TextView output = null;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_main);

      btn0 = (Button) findViewById(R.id.btn0);
      btn1 = (Button) findViewById(R.id.btn1);
      btn2 = (Button) findViewById(R.id.btn2);
      btn3 = (Button) findViewById(R.id.btn3);
      btn4 = (Button) findViewById(R.id.btn4);
      btn5 = (Button) findViewById(R.id.btn5);
      btn6 = (Button) findViewById(R.id.btn6);
      btn7 = (Button) findViewById(R.id.btn7);
      btn8 = (Button) findViewById(R.id.btn8);
      btn9 = (Button) findViewById(R.id.btn9);
      output = (TextView) findViewById(R.id.textView);
      ...

btnX と出力変数がすべて null であるため、アプリがクラッシュします。

于 2013-06-23T00:04:25.833 に答える