8

最終年度のプロジェクトのトリガーとアクションアプリケーションを作成しています。

子アクティビティの結果を中間アクティビティに返し、そのアクティビティにデータを追加して、メインアクティビティに再度送信します。

TriggerサブモジュールとActionサブモジュールの両方に対して、同じコーディングのように行いました。

トリガーモジュールは完全に機能していますが、アクションモジュールの実行アプリケーションが強制的に停止されると

エラーは

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

2 に答える 2

8

これは、Intent受信者がそので例外をスローしたことを意味しますonActivityResult()NullPointerExceptionそして、私はここで正しいことを見ることができます:それがであるときにdata.equals(null)例外をスローするので間違いなく間違っています。つまり。datanulldata == null

于 2012-06-18T14:26:56.347 に答える
0

null != dataデータがnullに等しいので、チェックするだけです

于 2015-12-03T12:42:58.413 に答える