Java 如何删除nullPointerException

Java 如何删除nullPointerException,java,android,nullpointerexception,Java,Android,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

我在单击方法中的代码中遇到空指针异常。请建议我如何删除它

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是我的另一个活动类,我试图通过intent传递我的价值观。 我的原木猫看起来像这样

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)

请帮助我解决此问题。

getInteger
方法替换为
parseInt
,以使用parseInt方法将字符串强制转换为整数

根据java


确定具有指定名称的系统属性的整数值。如果没有具有指定名称的属性,如果指定名称为空或null,或者属性没有正确的数字格式,则返回
null

您只需在主活动中这样尝试

done.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

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

        }
    });

尝试使用
intn=Integer.parseInt(num)而不是
getInteger()
。您在第45行获得NPE的位置。哪一个是第45行?首先检查您的
num
是否为空,然后将其解析为整数,并为
num
输入数字
done.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

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

        }
    });