フォームに Spinner ウィジェットと EditText ウィジェットがあります。SpinnerのonItemSelected
は、選択したアイテムの値で EditText のテキストを設定します。
spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
EditText txt2 = (EditText) findViewById(R.id.txt2);
System.out.println("Setting from onItemSelected");
txt2.setText(((TextView)view).getText().toString());
}
});
spinner.setSelection(sel);
spinner.setEnabled(false);
EditText et = (EditText) findViewById(R.id.txt2);
System.out.println("Setting from outside onItemSelected");
et.setText("Testing");
しかし、上記のコードの最後のステートメントは効果がありませsetText()
んonItemSelected
。非同期性が原因でこれが発生する可能性があることは知っていますが、setText() の呼び出しの意図したシーケンスを強制するためにそれを制御する方法はありますか?