需要一个结构来维护Android中的数据

时间:2015-10-21 10:44:42

标签: android list android-listview

我有一个由ListView制作的结构 - 自定义,如下图Custom List Stucture

所示

我可以点击AddProduct按钮添加新产品 使用产品和数量的EditText添加新类别 在那上面我有一个(+)和( - )按钮,它为Enter Dealer添加子类别,并在其上添加Quantity with remove按钮。

结构很好。

但是数据维护难度很大。就像我滚动时一样,焦点会丢失,而数据也会在ListView上消失。

请为此提出一些代码。

2 个答案:

答案 0 :(得分:0)

我建议你改变导航结构。 你可以在listView上保留删除功能,也可以实现刷卡,例如在GMail中。 我将删除添加按钮并使用FAB(浮动操作按钮)作为材料指南线建议。 希望它会对你有所帮助!

答案 1 :(得分:0)

我用以下结构实现了这个东西。

  1. 首先,我创建了Model类来维护Product
  2. 的数据
  3. 我正在JSONArray中保存数据,并添加了JSONObject的数量集合。 (我使用过JSON,因为我可以在String中轻松保存为Preference。)
  4. onCreate Activity SparseArray我正在JSONArray创建try { JSONArray savedProdJSONArray = new JSONArray(productSharedPref.getString("productArray", new JSONArray().toString())); Log.i(TAG, "Saved ARRAY Count : " + productSharedPref.getInt("count", -1)); for (int i = 0; i < savedProdJSONArray.length(); i++) { ProductItems tempPItems = new ProductItems(); tempPItems.setProdId(savedProdJSONArray.getJSONObject(i).getInt("prod_id")); tempPItems.setProdQty(savedProdJSONArray.getJSONObject(i).getDouble("qty")); tempPItems.setProdName(savedProdJSONArray.getJSONObject(i).getString("name")); } } catch (JSONException e) { // TODO Auto-generated catch block Log.e(TAG, "Json Err variant:"+e.getLocalizedMessage()); } 个已保存产品,如:

    getView()
  5. 现在位于ProductId的适配器中,我正在检查当前ProductId并且已保存EditText匹配。如果是,则填写 /** First check whether value of Saved product Array is >0 or not..*/ ProductItems savedProdTemp = prodItemsSavedList.get(holder.prodId, null); if(savedProdTemp != null) { productQtyValue = savedProdTemp.getProdQty(); holder.prodQtyView.setText(""+productQtyValue); } else { holder.prodQtyView.setText(""); } 并保存数据,如:

    addTextChangeListner
  6. 此处您还必须EditText JSONArray将数据保存在ArrayList中,然后当活动为Stop或{{{}时,您必须转换为Pause 1}}

  7. 我认为这有点令人困惑,但我认为这只会对你有所帮助。我多次尝试找出解决办法,但并没有比这更好。

    希望它会对你有所帮助。

    如果您有任何疑问,欢迎您。 (对不起,如果你发现英语错误:D)