我在表单中有一个 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() 的预期顺序?