1

アクティビティが返されたら、EditText と TextView のテキストを変更する必要があります。

したがって、 onActivityResult で次のことを行いました。

protected void onActivityResult(int requestCode, int resultCode, Intent data){
    Bundle extras = data.getExtras();
    EditText edit = (EditText)findViewByID(R.id.edit);
    edit.setText(extras.GetString("edit");
    TextView tv = (TextView)findViewByID(R.id.tv);
    tv.setText(extras.GetString("tv");
}

TextView のテキストは変更されますが、EditText のテキストは変更されません。

onCreate のテキストを変更するとすべてが機能しますが、onActivityResult では TextView だけが機能します。

私の質問は、onActivityResult の EditText のテキストを変更するにはどうすればよいですか?

4

3 に答える 3

1

EditTextメソッド内ののテキストを変更する方法の簡単な例を以下に示しますonActivityResult

最初のアクティビティのコードは次のとおりです。

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    final Intent i = new Intent(this, MyActivity2.class);
    startActivityForResult(i, 0);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (resultCode == RESULT_OK) {
        final Bundle result = data.getExtras();
        if (!result.isEmpty() && result.containsKey("data")) {
            final EditText editText = (EditText) findViewById(R.id.edit);
            editText.setText(data.getStringExtra("data"));
        }
    }

}

2 番目のアクティビティのコードは次のとおりです。

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    final Intent result = new Intent(this, MyActivity.class);
    result.putExtra("data", "test");
    setResult(RESULT_OK, result);
    finish();

}
于 2013-06-10T19:09:09.583 に答える