编辑:我仍然坚持这个问题,所以我想出来,我需要,每次我添加一个新项目到列表,我需要阅读状态CheckBoxes和EditTexts并将它们保存在某处,然后我必须使用数据并添加一个新项目,最后再将它们放在ListView上,所以,我不知道什么是正确的方法ListView获取这些状态。有人可以帮我吗?贝娄是我之前发布过的问题。
我正在为我的餐厅开发应用程序,对于订单,我有一个带有两个复选框的列表视图,一个EditText和一个Textview,所以我有一个
ArrayList<HashMap<String,String>>
它有一个客户订单的菜单列表,所以,如果我在我的EditText中有一些文本,如果我将新项目添加到列表中,它会删除它,我知道我必须保存数据,但我不知道如何,相同使用复选框,如果我向列表中添加新项目,状态就会丢失。
这个代码: 变量:
HashMap<String,String> comandas = new HashMap<>();
ArrayList<HashMap<String,String>> list = new ArrayList<HashMap<String, String>>();
这就是我必须将项目添加到listview
private void mostrarOrden3(){
JSONObject jsonObject = null;
try {
jsonObject = new JSONObject(JSON_STRING);
JSONArray result = jsonObject.getJSONArray(Config.TAG_JSON_ARRAY);
//El cont se utiliza para que el primer elemento de la lista sea el mas nuevo
int cont =result.length();
for(int i = 0; i<result.length(); i++){
JSONObject jo = result.getJSONObject(cont-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 = new HashMap<>();
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);
System.out.println(nombre);
list.add(comandas);
cont--;
}
} 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);
}
我需要在刷新适配器时将这些项目保存在其状态中,然后再次添加项目。 这样做的正确方法是什么? 我还有另一个问题即我在ListView上使用SwiperRefreshLayout,当我滚动它时,EditText上的文本在下面的lis上重复,我来自危地马拉,所以我的例子是西班牙语,但在示例中有两个项目有数字7,我只添加了一个。 Example 1 Example 2 whit the other number 7
我非常感谢你帮助我完成这个项目。祝你有愉快的一天!