我可以点击AddProduct按钮添加新产品 使用产品和数量的EditText添加新类别 在那上面我有一个(+)和( - )按钮,它为Enter Dealer添加子类别,并在其上添加Quantity with remove按钮。
结构很好。
但是数据维护难度很大。就像我滚动时一样,焦点会丢失,而数据也会在ListView上消失。请为此提出一些代码。
答案 0 :(得分:0)
我建议你改变导航结构。 你可以在listView上保留删除功能,也可以实现刷卡,例如在GMail中。 我将删除添加按钮并使用FAB(浮动操作按钮)作为材料指南线建议。 希望它会对你有所帮助!
答案 1 :(得分:0)
我用以下结构实现了这个东西。
Model
类来维护Product
。JSONArray
中保存数据,并添加了JSONObject
的数量集合。 (我使用过JSON,因为我可以在String
中轻松保存为Preference
。) 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()
现在位于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
此处您还必须EditText
JSONArray
将数据保存在ArrayList中,然后当活动为Stop
或{{{}时,您必须转换为Pause
1}}
我认为这有点令人困惑,但我认为这只会对你有所帮助。我多次尝试找出解决办法,但并没有比这更好。
希望它会对你有所帮助。
如果您有任何疑问,欢迎您。 (对不起,如果你发现英语错误:D)