Android程序无法运行

时间:2015-06-28 12:25:34

标签: java android

我是Android开发的新手。我正在尝试创建一个tic tac toe游戏,目前我希望我的按钮在点击时用X标记,但是当我运行程序并单击按钮时才会发生。我的activity.java文件如下:

        package com.android.tictactoe;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.*;

public class TictactoeActivity extends Activity implements Button.OnClickListener{
    Button one, two, three, four, five, six, seven, eight, nine;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        setContentView(R.layout.main);
        one=(Button)findViewById(R.id.one);
        one.setOnClickListener(this);
        two=(Button)findViewById(R.id.two);
        two.setOnClickListener(this);
        three=(Button)findViewById(R.id.three);
        three.setOnClickListener(this);
        four=(Button)findViewById(R.id.four);
        four.setOnClickListener(this);
        five=(Button)findViewById(R.id.five);
        five.setOnClickListener(this);
        six=(Button)findViewById(R.id.six);
        six.setOnClickListener(this);
        seven=(Button)findViewById(R.id.seven);
        seven.setOnClickListener(this);
        eight=(Button)findViewById(R.id.eight);
        eight.setOnClickListener(this);
        nine=(Button)findViewById(R.id.nine);
        nine.setOnClickListener(this);
    }
public void OnClick(Button button, int CheckedId){
    if(CheckedId==R.id.one && button.getText().equals("")){
        button.setText("X");
    }

    else if(CheckedId==R.id.two && button.getText().equals("")){
        button.setText("X");
    }

    else if(CheckedId==R.id.three && button.getText().equals("")){
        button.setText("X");
    }

    else if(CheckedId==R.id.four && button.getText().equals("")){
        button.setText("X");
    }

    else if(CheckedId==R.id.five && button.getText().equals("")){
        button.setText("X");
    }

    else if(CheckedId==R.id.six && button.getText().equals("")){
        button.setText("X");
    }

    else if(CheckedId==R.id.seven && button.getText().equals("")){
        button.setText("X");
    }

    else if(CheckedId==R.id.eight && button.getText().equals("")){
        button.setText("X");
    }

        button.setText("X");

}
@Override
public void onClick(View v) {
    // TODO Auto-generated method stub

}

}

我的main.xml如下:

<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:stretchColumns="0" >

    <TableRow>
        <TextView
          android:text="Fizzle TicTacToe"
          android:textStyle="bold"         
            android:textSize="30dip"
            android:textColor="#ffaa88"

        />
        </TableRow>
    <TableRow>        
<Button
    android:textColor="#440000"
   android:textSize="40dip"
    android:textStyle="bold"
    android:text=""

     android:id="@+id/one"
android:layout_span="1" 
android:layout_width="0dip"
android:layout_height="100dip"

android:layout_weight="30"/>
<Button
      android:textColor="#440000"
   android:textSize="40dip"
    android:textStyle="bold"
     android:text=""


     android:id="@+id/two"
     android:layout_span="1" 
android:layout_width="0dip" 
android:layout_height="100dip"
android:layout_weight="30"/>
<Button
      android:textColor="#440000"
   android:textSize="40dip"
    android:textStyle="bold"
     android:text=""


     android:id="@+id/three"
android:layout_span="1" 
android:layout_width="0dip" 
android:layout_height="100dip"
android:layout_weight="30"/>
</TableRow>

    <TableRow>        
<Button
     android:textColor="#440000"
   android:textSize="40dip"
    android:textStyle="bold"
    android:text=""


     android:id="@+id/four"
android:layout_span="1" 
android:layout_width="0dip"
android:layout_height="100dip"
android:layout_weight="30"/>
<Button
      android:textColor="#440000"
   android:textSize="40dip"
    android:textStyle="bold"
    android:text=""


     android:id="@+id/five"
     android:layout_span="1" 
android:layout_width="0dip" 
android:layout_height="100dip"
android:layout_weight="30"/>
<Button
      android:textColor="#440000"
   android:textSize="40dip"
    android:textStyle="bold"
    android:text=""

     android:id="@+id/six"
android:layout_span="1" 
android:layout_width="0dip" 
android:layout_height="100dip"
android:layout_weight="30"/>
</TableRow>

    <TableRow>        
<Button
      android:textColor="#440000"
   android:textSize="40dip"
    android:textStyle="bold"
    android:text=""


     android:id="@+id/seven"
android:layout_span="1" 
android:layout_width="0dip"
android:layout_height="100dip"
android:layout_weight="30"/>
<Button
     android:textColor="#440000"
   android:textSize="40dip"
    android:textStyle="bold"
     android:text=""


     android:id="@+id/eight"
     android:layout_span="1" 
android:layout_width="0dip" 
android:layout_height="100dip"
android:layout_weight="30"/>
<Button
      android:textColor="#440000"
   android:textSize="40dip"
    android:textStyle="bold"
     android:text=""

     android:id="@+id/nine"
android:layout_span="1" 
android:layout_width="0dip" 
android:layout_height="100dip"
android:layout_weight="30"/>
</TableRow>


</TableLayout>

2 个答案:

答案 0 :(得分:2)

您需要在覆盖方法上提供onClick行为,而不是您自己的方法。

@Override
public void onClick(View v) {

    OnClick((Button)v, v.getId());
}

答案 1 :(得分:0)

您的OnClick方法无效,将其内容复制到带有覆盖的onClick方法