0

アクティビティ 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 にインテントを送信できません。

この問題に対する他の解決策はありますか?

4

0 に答える 0