我试图根据对话框中的用户输入填充一个带有唯一字符串的操作栏微调器,例如用户输入一个字符串,如果它不在微调器中,它应该在那里添加。这样的实现是否可行?我尝试使用ArrayList类,但当然,重复是有的,我应该使用hashset吗?感谢
// array of sample strings to popluate dropdown list
ArrayList<String> categories = new ArrayList<String>();
// create an array adapter to popluate dropdown list
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
getBaseContext(),
android.R.layout.simple_spinner_dropdown_item, categories);
//thats the alert dialog through which user enters strings
AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.setTitle("New category");
alert.setMessage("Please enter a new category ");
// Set an EditText view to get user input
final EditText input = new EditText(this);
alert.setView(input);
alert.setPositiveButton("Ok",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int whichButton) {
Editable value = input.getText();
// Do something with value!
categories.add(value.toString());
}
});
答案 0 :(得分:3)
我建议在添加到类别之前检查它是否已经添加,或者不使用ArrayList.contains: http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html#contains(java.lang.Object)
要考虑的另一件事是区分大小写,也许您可以在之前转换为小写检查它是否已经存在于arraylist中,只有在它没有的情况下才会添加。