1

EditText とボタンを含むアクティビティが 1 つあります。ボタンが押されると、私は呼び出します

myEditText.setClickable(false);
myEditText.setFocusable(false);

別のボタンがあり、押すとアクティビティが変わります。

Intent myIntent = new Intent(view.getContext(), DestinationScreen.class);
startActivityForResult(myIntent, 0);

activity2 から EditText を持つメイン アクティビティに戻ったら、フォーカスを取り戻したいと思います。つまり、いくつかの新しい値を入力できるようにしたいのです。それがどのように可能か考えていますか?

メインアクティビティでこれをやろうとしました

startActivityForResult(myIntent, 0);
myEditText = (EditText) findViewById(R.id.textBox);
myEditText.setClickable(true);
myEditText.setFocusable(true);
myEditText.requestFocus();

うまくいかないようです。

4

2 に答える 2

0

あなたが言ったようにEditText、2 番目のアクティビティから戻ったときにフォーカスを取り戻したいと考えています。
次に、おそらくそれを試す必要があります。すでにstartActivityForResultメソッド (requestCode: 0) で activity2 を呼び出しているため、それを利用できます。

オーバーライドする必要があります

onActivityResult(int requestCode, int resultCode, Intent data)

メインアクティビティ内のメソッドで、 かどうかを確認しrequestCode == 0、そうである場合:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
    super.onActivityResult(requestCode, resultCode, data);
    switch (requestCode)
    {
        case 0:
            EditText myEditText = (EditText) findViewById(R.id.textBox);
            myEditText.setClickable(true);
            myEditText.setFocusable(true);
            myEditText.requestFocus();
        default:
            break;
    }
}
于 2011-04-22T18:31:05.153 に答える