最終年度のプロジェクトのトリガーとアクションアプリケーションを作成しています。
子アクティビティの結果を中間アクティビティに返し、そのアクティビティにデータを追加して、メインアクティビティに再度送信します。
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;
}
}
}