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时,应用程序可以正常工作,但是当我添加更多点击列表器时,我的应用程序崩溃了,为什么会发生这种情况?
答案 0 :(得分:0)
String field1 = tv1.getText().toString();
不能全局调用。在定义tv1 = (TextView)findViewById(R.id.tv1);
答案 1 :(得分:0)
String field1 = tv1.getText()。toString();
在获得答案之前,您必须了解为什么会发生此错误以及如何防止该错误。您必须学习活动的生命周期,并且对此有清晰的认识。
问题是textview无法在onCreate()之外初始化。因为视图仅在onCreate()方法内部呈现,所以只有空指针异常。如下重写代码。您的问题已解决。
sap.drop(...)
答案 2 :(得分:0)
onCreate
中的第一名:
tv1 = (TextView)findViewById(R.id.tv1);
然后第二行:
field1 = tv1.getText().toString();