2013-01-24 2 views
1

여기는 스페이드와 결국 다른 카드 게임에서 점수를 유지하기 위해 만드는 앱입니다. 널 포인터 예외 오류가 발생하고 어디 있는지 또는 무엇이 잘못되었는지 알 수 없습니다. 누구든지 제공 할 수있는 도움에 감사드립니다.java.lang.nullpointerexception 오류가 발생하여 찾을 수 없습니다.

여기 내 자바 파일

여기
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); 

     } 
     }); 


      }} 

<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

문제를 일으키기 위해 로그캣 붙여 넣기 –

답변

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

감사합니다. 그게 문제였습니다. 아직도 많은 기초를 배우는 lol – willocks1718

0

이 NPE 선 아래에있는 내 xml 파일입니다.

  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()); 

당신은

[] bidb 단지 습관 일 이하로하고, takeb [], 비다 [],

겠나 [] 이러한 배열 이름의 크기를 정의하지 않았습니다. 이러한 배열의 크기를 필요로합니다. 그때 만 작동합니다.

int takea [], takeb [], bida [], bidb []; 유를 사용하기 전에

bida = new int[10];

그런 짓을. // size는 ur 요구 사항에 따라 다릅니다.

total.onClickListener() 

에서

0

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()); 

내가이 정수 배열에 대한 초기화가 표시되지 않습니다하고 있습니다. 이 값은 값을 할당 할 때 null입니다. onCreate 또는 선언에서 초기화하십시오.

관련 문제