【发布时间】:2014-06-16 17:04:06
【问题描述】:
我需要将输入到文本字段中的值添加到数组列表中。
我是这样实现的:
public class MainActivity extends ActionBarActivity {
Spinner spinner1,spinner2,spinner3;
Button add;
EditText subject;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Spinner element
spinner1 = (Spinner) findViewById(R.id.spinner1);
spinner2 = (Spinner) findViewById(R.id.spinner2);
spinner3 = (Spinner) findViewById(R.id.spinner3);
add = (Button) findViewById(R.id.button1);
subject = (EditText) findViewById(R.id.editText1);
// Spinner click listener
//spinner2.setOnItemSelectedListener(this);
//spinner3.setOnItemSelectedListener(this);
spinner1.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapter, View v,
int position, long id) {
// On selecting a spinner item
String item = adapter.getItemAtPosition(position).toString();
// Showing selected spinner item
Toast.makeText(getApplicationContext(),
"Selected Subject : " + item, Toast.LENGTH_LONG).show();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
add.setOnClickListener(new OnClickListener() {
Context context;
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String content;
content = subject.getText().toString();
List list = new ArrayList();
list.add(content);
ArrayAdapter dataAdapter = new ArrayAdapter(MainActivity.this,android.R.layout.simple_spinner_item, list);
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner1.setAdapter(dataAdapter);
ListIterator it = list.listIterator();
it.hasNext();
}
});
}
public void addListenerOnSpinnerItemSelection() {
spinner1 = (Spinner) findViewById(R.id.spinner1);
spinner1.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
//do something here
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
//optionally do something here
}
});
}
但是,每次我在文本字段中输入新值时,之前的值都会被覆盖。如何使用数组来实现这一点?每次我输入一个值时,我都希望它在下拉菜单中单独保存。
【问题讨论】:
-
此代码是否放入您的
EditText的afterTextChanged()中?如果没有,您能告诉我们这些行在您的代码中的位置吗?
标签: java android arrays arraylist android-spinner