2012-06-18 283 views
5

林對我的畢業設計創建觸發器和操作的應用程序,失敗的結果ResultInfo {who = null,request = 1,result = -1,data = Intent {(has extras)}} to activity;顯示java.lang.NullPointerException

我孩子的活動結果返回到中間活動和療法的一些數據添加到該活動,並再次將其發送到主要活動,

我做了兩個觸發子模塊和行動分模塊,都喜歡相同的編碼....

觸發模塊可以正常使用,但是當執行模塊運行的應用程序是力停止

和錯誤是

E/AndroidRuntime(5104): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=Intent { (has extras) }} to activity {mani.droid.mechanize/mani.droid.mechanize.ActionListActivity}: java.lang.NullPointerException 

兒童onActivityResult

public void onSave(View v) 
{ 
    if(txtNum.length() != 0) 
    { 
     String strTmp = null; 
     Intent resultInt = new Intent(); 
     strTmp = txtNum.getText().toString(); 
     resultInt.putExtra("Num", strTmp); 
     resultInt.putExtra("SubName", strTmp); 
     setResult(Activity.RESULT_OK, resultInt); 
     finish(); 
    } 
    else 
     Toast.makeText(getApplicationContext(), "Please enter number or choose from contact", Toast.LENGTH_SHORT).show(); 
} 

中間體onActivityResult

//getting result from other activity and sending to action list activity 
@Override 
public void onActivityResult(int reqCode, int resultCode, Intent data) { 
    super.onActivityResult(reqCode, resultCode, data); 
    if(resultCode == Activity.RESULT_OK) 
    { 
     switch(reqCode) 
     { 
      case 1: 
        data.putExtra("ActionName", txtAction); 
        setResult(Activity.RESULT_OK, data); 
        finish(); 
        break; 
     } 
    } 
} 

主onActivityResult

//Getting Trigger parameters and adding to list 
@Override 
public void onActivityResult(int reqCode, int resultCode, Intent data) { 
    super.onActivityResult(reqCode, resultCode, data); 
    if(resultCode == Activity.RESULT_OK) 
    { 
     switch(reqCode) 
     { 
      case 1: 
       if (data.equals(null)) 
       { 
        Toast.makeText(context, "Intent is Null", Toast.LENGTH_SHORT).show(); 
       } 
       else 
       { 
        //String actName = data.getStringExtra("ActionName"); 
        String subName = data.getStringExtra("SubName"); 
        Toast.makeText(context, subName, Toast.LENGTH_SHORT).show(); 
       } 
       break; 
     } 
    } 
} 

回答

7

這意味着Intent接收者在其onActivityResult()中拋出了一個異常。我可以在這裏看到NullPointerExceptiondata.equals(null)肯定是錯誤的,因爲它在datanull時會引發異常。你的意思是data == null

+0

我一些什麼管理這一問題並解決,但我不知道它是如何解決的, 我也試過數據== NULL之前,同樣的錯誤,這就是爲什麼我嘗試data.equals(null) – Mani

+0

然後你的'NullPointerException'在別處。它會將你引導到一個行號,所以按照這個。你沒有發佈你的堆棧跟蹤 - 總是一個好主意。 'data.equals(null)'在Java中永遠不會是正確的。它總是「假」或拋出異常。 –

+0

你現在我明白了,謝謝你的幫助.. – Mani

0

只是檢查null != data,作爲數據等於空

相關問題