我制作了一个只有1个屏幕activity_main.xml的Android应用程序。
当我运行应用程序时它工作正常。
后来我在res / layouts中添加了另一个文件welcome.xml。
现在,当我设置
setContentView(R.layout.welcome);
该应用程序崩溃。这是我的welcome.xml代码:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<TextView
android:id="@+id/head"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="80dp"
android:text="2D X&O"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textSize="50sp" />
<Button
android:id="@+id/go"
android:layout_width="100dp"
android:layout_height="50dp"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="Start"
android:textSize="20sp" />
</RelativeLayout>
MainActivity.java:
package com.nhw.dxo;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends Activity {
char[][] a=new char[3][3];
char b=' ';
int i=0,j=0,k=0,o=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.welcome);
for(j=0;j<3;j++)
{
for(k=0;k<3;k++)
{
a[j][k]=' ';
}
}
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);
btn1.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{ j=0;k=0;
if((a[j][k]==' ')&&(o==0)){
TextView op1 = (TextView)findViewById(R.id.btn1);
op1.setText(String.valueOf(p(b,i)));a[0][0]=p(b,i);
o=check(a,j,k,o);i++;
}
}});
btn2.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{j=0;k=1;
if((a[j][k]==' ')&&(o==0)){
TextView op2 = (TextView)findViewById(R.id.btn2);
op2.setText(String.valueOf(p(b,i)));a[0][1]=p(b,i);
o=check(a,j,k,o);i++;
}}});
btn3.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{j=0;k=2;
if((a[j][k]==' ')&&(o==0)){
TextView op3 = (TextView)findViewById(R.id.btn3);
op3.setText(String.valueOf(p(b,i)));a[0][2]=p(b,i);
o=check(a,j,k,o);i++;
}}});
btn4.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{j=1;k=0;
if((a[j][k]==' ')&&(o==0)){
TextView op4 = (TextView)findViewById(R.id.btn4);
op4.setText(String.valueOf(p(b,i)));a[1][0]=p(b,i);
o=check(a,j,k,o);i++;
}}});
btn5.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{j=1;k=1;
if((a[j][k]==' ')&&(o==0)){
TextView op5 = (TextView)findViewById(R.id.btn5);
op5.setText(String.valueOf(p(b,i)));a[1][1]=p(b,i);
o=check(a,j,k,o);i++;
}}});
btn6.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{j=1;k=2;
if((a[j][k]==' ')&&(o==0)){
TextView op6 = (TextView)findViewById(R.id.btn6);
op6.setText(String.valueOf(p(b,i)));a[1][2]=p(b,i);
o=check(a,j,k,o);i++;
}}});
btn7.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{j=2;k=0;
if((a[j][k]==' ')&&(o==0)){
TextView op7 = (TextView)findViewById(R.id.btn7);
op7.setText(String.valueOf(p(b,i)));a[2][0]=p(b,i);
o=check(a,j,k,o);i++;
}}});
btn8.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{j=2;k=1;
if((a[j][k]==' ')&&(o==0)){
TextView op8 = (TextView)findViewById(R.id.btn8);
op8.setText(String.valueOf(p(b,i)));a[2][1]=p(b,i);
o=check(a,j,k,o);i++;
}}});
btn9.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{j=2;k=2;
if((a[j][k]==' ')&&(o==0)){
TextView op9 = (TextView)findViewById(R.id.btn9);
op9.setText(String.valueOf(p(b,i)));a[2][2]=p(b,i);
o=check(a,j,k,o);i++;
}}});
}
public char p(char b,int i)
{
if(i%2==0) {b='X';}
else {b='O';}
return b;
}
public int check(char[][] a,int j, int k,int o)
{
if(a[j][0]==a[j][1]&&a[j][1]==a[j][2]&&a[j][k]!=' ') {o+=1;}
if(a[0][k]==a[1][k]&&a[1][k]==a[2][k]&&a[j][k]!=' ') {o+=1;}
if(((a[0][0]==a[1][1]&&a[1][1]==a[2][2])||(a[0][2]==a[1][1]&&a[1][1]==a[2][0]))&&a[1][1]!=' ') {o+=1;}
TextView txt = (TextView)findViewById(R.id.txt);
if(o!=0){txt.setText("GG");}
else {
if(i%2==1) {txt.setText("Player 1 : X");}
else {txt.setText("Player 2 : O");}
}
return o;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
答案 0 :(得分:1)
您的welcome.xml
没有您初始化的所有按钮。您拥有的只是welcome.xml
findViewById
在设置为活动的当前视图层次结构中查找视图。您可能会NullPointerException
导致崩溃