当使用intent的时候报出NullPoiterException,具体是在调用这行代码的时候:
int posizione2 =Integer.parseInt((getIntent().getExtras().getString(Intent.EXTRA_TEXT)));
请多指教!谢谢
private void aggiungiImm(View arg1, int arg2) {
Intent i=newintent(Intent.ACTION_PICK,ContactsContract.Contacts.CONTENT_URI);
i.putExtra(Intent.EXTRA_TEXT, Integer.toString(arg2));
startActivityForResult(i, PICK_REQUEST);
}
@Override
protected void onActivityResult(int requestCode, int resultCode,Intent data) {
Uri contactData=null;
if (requestCode==PICK_REQUEST) {
if (resultCode==RESULT_OK) {
contactData=data.getData();
int posizione2 =Integer.parseInt((getIntent().getExtras().getString(Intent.EXTRA_TEXT)));
错误是不是和intent是隐式有关?
别用:
int posizione2 =Integer.parseInt((getIntent().getExtras().getString(Intent.EXTRA_TEXT)));
试试:
Bundle extras = getIntent().getExtras();
if (extras==null) {
Log.e( "", "No extras provided" );
return;
}
String myText = extras.getString(Intent.EXTRA_TEXT);
if (myText==null) {
Log.e( "", "No text provided" );
return;
}
int posizione2 = Integer.parseInt(myText);
可以看到是什么引起异常。
返回的text在intent传递到函数会有效,所以还应该加上这行代码:
int posizione2 = Integer.parseInt(data.getString(Intent.EXTRA_TEXT));
getIntent()
方法可以帮你启动那个的Activity,
getExtras返回了空。而且不能用getIntent(),应该用data.
你可以直接用data.getStringExtra获得结果。