2014-03-02 6 views
0

클릭 메서드에서 내 코드에서 Null Pointer Exception이 발생합니다. 어떻게 제거 할 수 있는지 제안 해주십시오.nullPointerException을 제거하려면 어떻게해야합니까

package co.sds.iitr.bullsandcows; 

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.Toast; 

public class MainActivity extends Activity implements OnClickListener 
{ 
EditText Num; 
Button done; 
@Override 
protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    Num = (EditText) findViewById(R.id.etNum); 
    done = (Button) findViewById(R.id.btDone); 

    done.setOnClickListener(this); 

} 

@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; 
} 

@Override 
public void onClick(View v) 
{ 
    // TODO Auto-generated method stub 
    if(v.getId()== R.id.btDone) 
    { 
     String num = Num.getText().toString(); 
     int n = Integer.getInteger(num); 
     Toast.makeText(getApplicationContext(),"Your number is saved", 
       Toast.LENGTH_LONG).show(); 
     Intent i = new Intent(getApplicationContext(),GuessActivtiy.class);  
     i.putExtra("num", n); 
     startActivity(i); 

    } 
    else 
     Toast.makeText(getApplicationContext(),"Not Found", 
       Toast.LENGTH_LONG).show(); 


} 

} 

GussActivity는 내 값을 의도를 통해 전달하려고 시도하는 다른 활동 클래스입니다. 로그 고양이가 이렇게 생겼습니다.

03-02 02:01:22.080: D/gralloc_goldfish(901): Emulator without GPU emulation detected. 
03-02 02:01:27.570: D/AndroidRuntime(901): Shutting down VM 
03-02 02:01:27.570: W/dalvikvm(901): threadid=1: thread exiting with uncaught exception  (group=0xb3aaeba8) 
03-02 02:01:27.650: E/AndroidRuntime(901): FATAL EXCEPTION: main 
03-02 02:01:27.650: E/AndroidRuntime(901): Process: co.sds.iitr.bullsandcows, PID: 901 
03-02 02:01:27.650: E/AndroidRuntime(901): java.lang.NullPointerException 
03-02 02:01:27.650: E/AndroidRuntime(901): at  co.sds.iitr.bullsandcows.MainActivity.onClick(MainActivity.java:45) 
03-02 02:01:27.650: E/AndroidRuntime(901): at android.view.View.performClick(View.java:4438) 
03-02 02:01:27.650: E/AndroidRuntime(901): at android.view.View$PerformClick.run(View.java:18422) 
03-02 02:01:27.650: E/AndroidRuntime(901): at android.os.Handler.handleCallback(Handler.java:733) 
03-02 02:01:27.650: E/AndroidRuntime(901): at android.os.Handler.dispatchMessage(Handler.java:95) 
03-02 02:01:27.650: E/AndroidRuntime(901): at android.os.Looper.loop(Looper.java:136) 
03-02 02:01:27.650: E/AndroidRuntime(901): at android.app.ActivityThread.main(ActivityThread.java:5017) 
03-02 02:01:27.650: E/AndroidRuntime(901): at java.lang.reflect.Method.invokeNative(Native Method) 
03-02 02:01:27.650: E/AndroidRuntime(901): at java.lang.reflect.Method.invoke(Method.java:515) 
03-02 02:01:27.650: E/AndroidRuntime(901): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) 
03-02 02:01:27.650: E/AndroidRuntime(901): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 
03-02 02:01:27.650: E/AndroidRuntime(901): at dalvik.system.NativeStart.main(Native Method) 

이 문제를 해결하는 데 도움을주십시오.

+0

로보기는'INT N =있는 Integer.parseInt (NUM)를 사용하는 경우는 null – archie

+0

시도이다. 45 번 라인에서 NPE를 얻는 곳. –

+1

45 번 라인은 어느 것입니까? – home

답변

2

사용으로 parseInt 방법을 자바 doc

getInteger(String nm) 

당으로

을 문자열을 정수로 캐스팅, parseInt으로 getInteger 방법을 바꾸기가 지정된 용하 고의 시스템 프로퍼티의 정수 값을 결정합니다 지정된 이름을 가진 특성이 없거나 지정된 이름이 비어 있거나 null 인 경우 또는 특성에 올바른 숫자 형식이없는 경우 null이 리턴됩니다. 대신`getInteger()`의`당신은 단지 MainActivity 내에서 다음과 같이 시도

0

....

done.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      Intent intent = new Intent (MainActivity.this , GuessActivtiy.class); 
      intent.putExtra("num", n); 
      startActivity(intent); 

     } 
    }); 
관련 문제