程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> android-安卓的intent報出空指針異常

android-安卓的intent報出空指針異常

編輯:編程綜合問答
安卓的intent報出空指針異常

當使用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,

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved