アクティビティ B からアクティビティ A にイベント データを渡したい。
アクティビティ A は次のようになります。
public class ActivityDemo extends Activity {
private Intent mIntent;
private Context mContext;
private TextView mText;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.demo_activity);
mContext = getApplicationContext();
Button button = (Button)findViewById(R.id.qbutton);
if (button != null) {
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
mIntent = new Intent(mContext, DualActivity.class);
if (mIntent != null) {
startActivity(mIntent);
}
}
});
}
mText = (TextView)findViewById(R.id.qText);
}
...
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
mText.setText(data.getStringExtra("TextOut"));
}
}
アクティビティ B は次のようなものです。
public class DualActivity extends Activity implements QFragment.OnDataPassToActivity {
private Context mContext;
private Intent mIntent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mContext = getApplicationContext();
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(SUIRes.layout(getApplicationContext(), "dual_default_activity"));
mIntent = getIntent();
}
public void onDataPassToActivity(String string) {
if(mIntent != null) {
mIntent.putExtra("TextOut", string);
}
//Toast.makeText(getApplicationContext(), string, Toast.LENGTH_SHORT).show();
}
}
アクティビティ B はもともとアクティビティ A によって呼び出され、onDataPassToActivity() は別のクラスによって呼び出されるコールバック関数です。onDataPassToActivity() 関数が呼び出されたときにアクティビティ A に文字列データを送信したい。コールバックが呼び出されている間、コメントされたトーストが正常に動作することを確認しましたが、アクティビティ A にインテントを送信できません。
この問題に対する他の解決策はありますか?