2013-01-24 36 views
1

這是我正在做的一個應用程序,以保持黑桃和最終其他紙牌遊戲的分數。我得到一個空指針異常錯誤,我不確定它在哪裏或是哪裏出錯。感謝任何人的幫助。得到一個java.lang.nullpointerexception錯誤,並找不到它

這裏是我的java文件

package com.innovativesolutions.cardscorekeeper; 


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

public class MainActivity extends Activity { 

    int scorea, scoreb, takea[], takeb[], bida[], bidb[], baga, bagb, iii; 
    EditText bidaa, bidbb, actuala, actualb, totala, totalb; 
    Button total; 
    CheckBox nila, nilb, gnila, gnilb; 

    @Override 
     public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     iii = 0; 
     baga = 0; 
     bagb = 0; 
     scorea = 0; 
     scoreb = 0; 
     total = (Button) findViewById(R.id.button1); 
     bidaa = (EditText) findViewById(R.id.abid); 
     bidbb = (EditText) findViewById(R.id.bbid); 
     actuala = (EditText) findViewById(R.id.atake); 
     actualb = (EditText) findViewById(R.id.btake); 
     totala = (EditText) findViewById(R.id.atotal); 
     totalb = (EditText) findViewById(R.id.btotal); 
     nila = (CheckBox) findViewById(R.id.anil); 
     nilb = (CheckBox) findViewById(R.id.bnil); 
     gnila = (CheckBox) findViewById(R.id.agnil); 
     gnilb = (CheckBox) findViewById(R.id.bgnil); 
     total.setOnClickListener(new View.OnClickListener() { 

      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       bida[iii]=Integer.parseInt(bidaa.getText().toString()); 
       bidb[iii]=Integer.parseInt(bidbb.getText().toString()); 
       takea[iii]=Integer.parseInt(actuala.getText().toString()); 
       takeb[iii]=Integer.parseInt(actualb.getText().toString()); 


       if (nila.isChecked()){ 
        if (gnila.isChecked() && takea[iii]>=bida[iii]){ 
        baga = takea[iii]-bida[iii]+baga; 
        scorea = scorea + 100 + (bida[iii]*10); 
        } 
        else {scorea = scorea - 100 - (bida[iii]*10);} 
       } else { 
        if (takea[iii]>=bida[iii]){ 
         baga = takea[iii]-bida[iii]+baga; 
         scorea = scorea + (bida[iii]*10); 
        } else {scorea = scorea - (bida[iii]*10);} 

       } 

       if (nilb.isChecked()){ 
        if (gnilb.isChecked() && takeb[iii]>=bidb[iii]){ 
        bagb = takeb[iii]-bidb[iii]+bagb; 
        scoreb = scoreb + 100 + (bidb[iii]*10); 
        } else {scoreb = scoreb - 100 - (bidb[iii]*10);} 
       } else { 
        if (takeb[iii]>=bidb[iii]){ 
         bagb = takeb[iii]-bidb[iii]+bagb; 
         scoreb = scoreb + (bidb[iii]*10); 
        } else {scoreb = scoreb - (bidb[iii]*10);} 

       }    


       if (baga>=10){ 
        scorea = scorea - 100; 
        baga = 0; 
       } 
       if (bagb>=10){ 
        scoreb = scoreb - 100; 
        bagb = 0; 
       } 

       iii++; 
       totala.setText(scorea); 
       totalb.setText(scoreb); 

     } 
     }); 


      }} 

,這裏是我的xml文件

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <RadioGroup 
     android:id="@+id/radioGroup1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" > 

     <RadioButton 
      android:id="@+id/radio0" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:checked="true" 
      android:text="Spades" /> 

     <RadioButton 
      android:id="@+id/radio1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Rook" /> 
    </RadioGroup> 

    <EditText 
     android:id="@+id/editText3" 
     android:layout_width="100dp" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_below="@+id/radioGroup1" 
     android:layout_marginLeft="70dp" 
     android:ems="10" 
     android:text="Team A" 
     android:textSize="20dp" /> 

    <EditText 
     android:id="@+id/editText4" 
     android:layout_width="100dp" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/radioGroup1" 
     android:layout_marginLeft="50dp" 
     android:layout_toRightOf="@+id/editText3" 
     android:ems="10" 
     android:text="Team B" 
     android:textSize="20dp" /> 

    <Button 
     android:id="@+id/button1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_marginLeft="75dp" 
     android:layout_marginTop="20dp" 
     android:layout_toRightOf="@+id/radioGroup1" 
     android:text="Add Round" /> 

    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_below="@+id/editText3" 
     android:text="Bid" 
     android:textSize="20dp" /> 

    <TextView 
     android:id="@+id/textView2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_below="@+id/textView1" 
     android:text="Taken" 
     android:textSize="20dp" /> 

    <EditText 
     android:id="@+id/abid" 
     android:layout_width="50dp" 
     android:layout_height="wrap_content" 
     android:layout_alignBottom="@+id/textView1" 
     android:layout_toRightOf="@+id/textView2" 
     android:ems="10" 
     android:inputType="number" 
     android:text="1" 
     android:textSize="20dp" /> 

    <EditText 
     android:id="@+id/bbid" 
     android:layout_width="50dp" 
     android:layout_height="wrap_content" 
     android:layout_above="@+id/textView2" 
     android:layout_marginLeft="50dp" 
     android:layout_toRightOf="@+id/editText3" 
     android:ems="10" 
     android:inputType="number" 
     android:text="2" 
     android:textSize="20dp" /> 

    <EditText 
     android:id="@+id/btake" 
     android:layout_width="100dp" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/editText4" 
     android:layout_alignRight="@+id/bbid" 
     android:layout_alignTop="@+id/textView2" 
     android:ems="10" 
     android:inputType="number" 
     android:text="1" 
     android:textSize="20dp" /> 

    <CheckBox 
     android:id="@+id/anil" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBaseline="@+id/abid" 
     android:layout_alignBottom="@+id/abid" 
     android:layout_toRightOf="@+id/abid" 
     android:checked="false" 
     android:text="Nil?" /> 

    <CheckBox 
     android:id="@+id/bnil" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBaseline="@+id/bbid" 
     android:layout_alignBottom="@+id/bbid" 
     android:layout_alignParentRight="true" 
     android:text="Nil?" /> 

    <CheckBox 
     android:id="@+id/bgnil" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBaseline="@+id/btake" 
     android:layout_alignBottom="@+id/btake" 
     android:layout_alignParentRight="true" 
     android:text="Nil?" /> 

    <EditText 
     android:id="@+id/atake" 
     android:layout_width="50dp" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/editText3" 
     android:layout_below="@+id/abid" 
     android:ems="10" 
     android:inputType="number" 
     android:text="2" 
     android:textSize="20dp" /> 

    <CheckBox 
     android:id="@+id/agnil" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBaseline="@+id/atake" 
     android:layout_alignBottom="@+id/atake" 
     android:layout_centerHorizontal="true" 
     android:checked="false" 
     android:text="Nil?" /> 

    <EditText 
     android:id="@+id/btotal" 
     android:layout_width="100dp" 
     android:layout_height="wrap_content" 
     android:layout_alignBaseline="@+id/atotal" 
     android:layout_alignBottom="@+id/atotal" 
     android:layout_alignParentRight="true" 
     android:ems="10" 
     android:inputType="number" 
     android:text="0" > 

     <requestFocus /> 
    </EditText> 

    <EditText 
     android:id="@+id/atotal" 
     android:layout_width="100dp" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_below="@+id/atake" 
     android:layout_marginTop="30dp" 
     android:ems="10" 
     android:text="0" /> 

</RelativeLayout> 
+4

提供完整的堆棧跟蹤請。 – Aidanc

+0

也請添加logcat。 – GrIsHu

+0

粘貼Logcat來入侵問題 –

回答

0

只需要初始化所有已聲明整數的數組。 初始化這一切都在你的onCreate()如下:

@Override 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    iii = 0; 
    baga = 0; 
    bagb = 0; 
    scorea = 0; 
    scoreb = 0; 
    bida=new int[10]; 
    bidb=new int[10]; 
    takea=new int[10]; 
    takeb=new int[10]; 
    ........................ 
} 

而且解析整數的值在TextView如下設置:

  totala.setText(String.valueOf(scorea)); 
      totalb.setText(String.valueOf(scoreb)); 
+0

謝謝,那就是問題所在。仍然學習了很多基礎知識 – willocks1718

0

這個NPE在以下線。

  bida[iii]=Integer.parseInt(bidaa.getText().toString()); 
      bidb[iii]=Integer.parseInt(bidbb.getText().toString()); 
      takea[iii]=Integer.parseInt(actuala.getText().toString()); 
      takeb[iii]=Integer.parseInt(actualb.getText().toString()); 

您還沒有定義這些數組名大小

takea [],takeb [],爾必達[],BIDB []

只是做以下不會工作。你需要確定這些數組的大小。那麼只有它會起作用

int takea [],takeb [],bida [],bidb [];

這樣做bida = new int[10];

ü開始使用它們之前。 //大小將取決於你的要求是什麼。

0

total.onClickListener() 

你正在做這個

bida[iii]=Integer.parseInt(bidaa.getText().toString()); 
bidb[iii]=Integer.parseInt(bidbb.getText().toString()); 
takea[iii]=Integer.parseInt(actuala.getText().toString()); 
takeb[iii]=Integer.parseInt(actualb.getText().toString()); 

我沒有看到這些整數數組的初始化。在您爲這些值賦值時這些值爲空。在onCreate或聲明中初始化。

相關問題