我正在制作一个琐事游戏,并想让用户通过电子邮件提交自己的问题。
所以我有四个edittext字段,然后是带有微调器的正确答案部分。我希望用户填写四个字段,然后从微调器中选择正确的答案。
所以我的问题是,在您键入时,微调器不会更新。例如,默认情况下,微调器的视图位于第一个编辑文本字段上。但是如果我添加了一堆文本,那么在我点击另一个项目然后再回来之前,微调器就不会更新。我希望微调器能够在输入时简单地更新......但似乎无法弄清楚如何做到这一点,尽管我确信它很简单。
这是我的代码:
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
}
});
答案 0 :(得分:0)
添加adapter.notifyDataSetChanged();
告诉适配器刷新自己。
答案 1 :(得分:0)
我希望它对你有所帮助。
试试此代码......
List<String> list;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final EditText ed1=(EditText)findViewById(R.id.editText1);
final EditText ed2=(EditText)findViewById(R.id.editText2);
Button b1=(Button) findViewById(R.id.button1);
list=new ArrayList<String>();
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
list.add(ed1.getText().toString());
list.add(ed2.getText().toString());
ed1.setText(null);
ed2.setText(null);
call();
}
private void call() {
// TODO Auto-generated method stub
ArrayAdapter<String> adp=new ArrayAdapter<String>(getBaseContext(),
android.R.layout.simple_dropdown_item_1line,list);
adp.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
Spinner sp=(Spinner) findViewById(R.id.spinner1);
sp.setAdapter(adp);
}
});
}