我正在製作一個瑣事遊戲,並希望用戶通過電子郵件提交自己的問題。如何在我輸入時更新微調器視圖?
所以我有四個edittext字段,然後一個正確的答案部分與微調。我希望用戶填寫四個字段,然後從微調器中選擇正確的答案。
所以我的問題是,微調不會更新,因爲你鍵入。例如,默認情況下,微調控件的視圖位於第1個編輯文本字段上。但是,如果我添加了一堆文本,那麼微調器將不會更新,直到我點擊另一個項目,然後再回來。我想微調只是更新,因爲我鍵入...但似乎無法弄清楚如何做到這一點,雖然我敢肯定它的簡單。
這裏是我的代碼:
items=new String[4];
items[0]=answer1.getText().toString();
items[1]=answer2.getText().toString();
items[2]=answer3.getText().toString();
items[3]=answer4.getText().toString();
final Spinner correctAnswerSpinner = (Spinner) findViewById(R.id.answerSpinner);
ArrayAdapter<?> adapter = new ArrayAdapter<Object>(this, android.R.layout.simple_spinner_item, items);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
correctAnswerSpinner.setAdapter(adapter);
answer1.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {
}
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
public void onTextChanged(CharSequence s, int start, int before, int count) {
items[0]=answer1.getText().toString();
correctAnswerSpinner.getSelectedView();
}
});
answer2.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {
}
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
public void onTextChanged(CharSequence s, int start, int before, int count) {
items[1]=answer2.getText().toString();
}
});
answer3.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {
}
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
public void onTextChanged(CharSequence s, int start, int before, int count) {
items[2]=answer3.getText().toString();
}
});
answer4.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {
}
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
public void onTextChanged(CharSequence s, int start, int before, int count) {
items[3]=answer4.getText().toString();
}
});
correctAnswerSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent, View itemSelected,
int selectedItemPosition, long selectedId) {
correctAnswerSpinner.setSelection(selectedItemPosition);
}
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
好了,請不要介意。自己想出來。它非常簡單。只需添加adapter.notifyDataSetChanged();告訴適配器自行刷新。 – Sam 2011-03-25 03:48:20