我在使用我的ArrayList时遇到了一些麻烦,我正在为我的餐馆开发一个应用程序,我得到了带有我的菜肴的AutoCompleteTextView,当我选择其中一个它放入列表并显示带有适配器时,问题显示我尝试将另一道菜放入我的订单清单,我来自危地马拉,所以我的例子将是西班牙语,例如我添加一个名为“Hamburguesa de pollo”的菜,它正确地添加到te ArrayList,但是当我添加一个名为Dish的菜时“Ravioles”它删除了“Hamburguesa de pollo”,并向我展示了两个像这样说“Ravioles”的项目。
Problem 如果我添加更多项目,则las会删除旧项目并在整个列表中显示相同内容。
这是我在onCreate方法
上面的声明ArrayList<HashMap<String,String>> list = new ArrayList<>();
这是AutoCompleteTexView的监听器
textViewPlatos.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
textPlatos=textViewPlatos.getText().toString();
getJSON3();
textViewPlatos.setText("");
}
});
这适用于AsyncTask并转到此方法,该方法执行查询以获取de数据,然后将该项添加到列表中,并显示到te适配器。
private void mostrarOrden3(){
JSONObject jsonObject = null;
try {
jsonObject = new JSONObject(JSON_STRING);
JSONArray result = jsonObject.getJSONArray(Config.TAG_JSON_ARRAY);
JSONObject jo = result.getJSONObject(result.length()-1);
String id = jo.getString(Config.TAG_ID_PLATOS);
String nombre = jo.getString(Config.TAG_NOMBRE_PLATOS);
String precio = jo.getString(Config.TAG_PRECIO_PLATOS);
String descripcion = jo.getString(Config.TAG_DESCRIPCION_PLATOS);
String nombrecategoria = jo.getString(Config.TAG_NOMBRECATEGORIA_PLATOS);
comandas.put(Config.TAG_ID_PLATOS,id);
comandas.put(Config.TAG_NOMBRE_PLATOS,nombre);
comandas.put(Config.TAG_PRECIO_PLATOS,precio);
comandas.put(Config.TAG_DESCRIPCION_PLATOS,descripcion);
comandas.put(Config.TAG_NOMBRECATEGORIA_PLATOS,nombrecategoria);
list.add(comandas);
// }
} catch (JSONException e) {
e.printStackTrace();
}
ListAdapter adapter = new SimpleAdapter(
NuevaOrdenActivity.this, list, R.layout.list_item_platos,
new String[]{Config.TAG_NOMBRE_PLATOS},
new int[]{ R.id.name});
listView.setAdapter(adapter);
}
我真的不知道代码何时擦除名称并用新项替换所有名称。我做了一个调试,列表中的项目真的被覆盖了,一遍又一遍,到最后它有一个相同的最后项目列表,对不起我的英语,并感谢帮助我。