Я не знаю, в чем проблема в моем коде, когда я открываю это приложение, мое приложение падает - PullRequest
0 голосов
/ 11 октября 2018
     package com.example.shery.tictactoe;

 import android.annotation.SuppressLint;
 import android.graphics.Color;
 import android.support.v7.app.AppCompatActivity;
 import android.os.Bundle;
 import android.view.View;
 import android.widget.Button;
  import android.widget.TextView;

 public class MainActivity extends AppCompatActivity {
 Button btn1,btn2,btn3,btn4,btn5,btn6,btn7,btn8,btn9;
 TextView tv1;
String field1 = tv1.getText().toString();
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    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);
    tv1 = (TextView)findViewById(R.id.tv1);

    btn1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {


            if(field1.equals("Turn X"))
            {
                btn1.setText("X");
                tv1.setText("Turn O");
                btn1.setEnabled(false);
            }
            else
            {
                btn1.setText("O");
                tv1.setText("Turn X");
                btn1.setEnabled(false);

            }

        }
    });
    btn2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            if(field1.equals("Turn X"))
            {
                btn2.setText("X");
                tv1.setText("Turn O");
                btn2.setEnabled(false);

            }
            else
            {
                btn2.setText("O");
                tv1.setText("Turn X");
                btn2.setEnabled(false);

            }

        }
    });
    btn3.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            if(field1.equals("Turn X"))
            {
                btn3.setText("X");
                tv1.setText("Turn O");
                btn3.setEnabled(false);
            }
            else
            {
                btn3.setText("O");
                tv1.setText("Turn X");
                btn3.setEnabled(false);

            }

        }
    });
    btn4.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            String field1 = tv1.getText().toString();

            if(field1.equals("Turn X"))
            {
                btn4.setText("X");
                tv1.setText("Turn O");
                btn4.setEnabled(false);
            }
            else
            {
                btn4.setText("O");
                tv1.setText("Turn X");
                btn4.setEnabled(false);

            }

        }
    });
    btn5.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            String field1 = tv1.getText().toString();

            if(field1.equals("Turn X"))
            {
                btn5.setText("X");
                tv1.setText("Turn O");
                btn5.setEnabled(false);
            }
            else
            {
                btn5.setText("O");
                tv1.setText("Turn X");
                btn5.setEnabled(false);
            }

        }
    });
    btn6.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            String field1 = tv1.getText().toString();

            if(field1.equals("Turn X"))
            {
                btn6.setText("X");
                tv1.setText("Turn O");
                btn6.setEnabled(false);
            }
            else
            {
                btn6.setText("O");
                tv1.setText("Turn X");
                btn6.setEnabled(false);

            }

        }
    });
    btn7.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            String field1 = tv1.getText().toString();

            if(field1.equals("Turn X"))
            {
                btn7.setText("X");
                tv1.setText("Turn O");
                btn7.setEnabled(false);
            }
            else
            {
                btn7.setText("O");
                tv1.setText("Turn X");
                btn7.setEnabled(false);

            }

        }
    });
    btn8.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            String field1 = tv1.getText().toString();

            if(field1.equals("Turn X"))
            {
                btn8.setText("X");
                tv1.setText("Turn O");
                btn8.setEnabled(false);
            }
            else
            {
                btn8.setText("O");
                tv1.setText("Turn X");
                btn8.setEnabled(false);

            }

        }
    });
    btn8.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            String field1 = tv1.getText().toString();

            if(field1.equals("Turn X"))
            {
                btn9.setText("X");
                tv1.setText("Turn O");
                btn9.setEnabled(false);
            }
            else
            {
                btn9.setText("O");
                tv1.setText("Turn X");
                btn9.setEnabled(false);

            }

        }
    });



}

}

Я не знаю, в чем проблема в моем коде, когда я открываю это приложение, мое приложение падает, вы можете проверить мой код выше. Я не знаю, в чем проблема в моем коде, когда я открываюэто приложение, мое приложение снова выглядело как открытое приложение, почему это происходит, когда я был написан 2 btn click listener, приложение работает нормально, но когда я добавляю больше clicklist, мое приложение падает, почему ??

Ответы [ 2 ]

0 голосов
/ 11 октября 2018

String field1 = tv1.getText (). ToString ();

Прежде чем получить ответ, вы должны понять, почему возникает эта ошибка и как ее предотвратить.Вы должны изучить жизненный цикл действия, и у вас есть четкое представление об этом.

И проблема в том, что textview не может инициализироваться вне onCreate ().Потому что представление отображается только внутри метода onCreate (). Только вы получаете исключение нулевого указателя.Перепишите код, как показано ниже.Ваша проблема решена.

String field;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    field1 = tv1.getText().toString();
}
0 голосов
/ 11 октября 2018

String field1 = tv1.getText().toString(); нельзя назвать глобально.Сделайте это в методе OnCreate после определения tv1 = (TextView)findViewById(R.id.tv1);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...