我需要一些指导
问题:
我想使用CartActivity中的EditText更新ProductInformationActivity中的Item的数量
我的计划概述:
我在ProductInformationActivity中使用Constant类来存储Item的信息,如:Title,Qty,Cost,Total,然后在CartActivity中显示这些细节。
查看以下截图:
ProductInformationActivity:我第一次接受用户的数量。
CartActivity:我想让用户更新他在ProductInformationActivity中输入的项目数量[这里我使用EditText接受新数量]
ProductInformationActivity.java:
每当用户点击Add Order按钮时,我会在Constant Class中存储Item Title,Qty,Cost和Total,然后在CartActivity中显示这些值
答案 0 :(得分:0)
Ok首先将您的qty EditText修改为CartAdapter.java中的静态,如下所示,
所以,修改这一行
final EditText qty =(EditText)vi.findViewById(R.id.qty);
如下,
static EditText qty =(EditText)vi.findViewById(R.id.qty);
现在在CartAdapter.java中创建一个公共方法,如下所示,
public static String getQuantity()
{
if ( qty != null )
{
return qty.getText().toString();
}
return "";
}
现在在ProductInformationActivity.java
在onResume()方法中,编写以下行(如果不存在则创建一个方法),
@Override
public void onResume()
{
super.onResume();
edit_qty_code.setText ( CartAdapter.getQuantity() ); // This line will get the modified EditText's value from CartAdapter.java class file.
}
答案 1 :(得分:0)
您有一个包含项目的列表
Constants.sItem_Detail
它是静态的和公共的,因此可以从任何地方访问它。
当您处于CartActivity状态时,ProductInformationActivity将暂停,停止或销毁。它不会显示,因此您无法更新它的视图元素,或者至少不应该这样做。
在CartActivity中你有TextWatcher,在constants.sItem_Detail中的onTextChanged方法更新值到一个新值,在ProductInformationActivity中你得到它并在onResume方法的EditText中设置它。
HashMap<String, String> item = new HashMap<String, String>();
item = Constants.sItem_Detail.get(position);
// Setting all values in listview
title.setText(item.get(com.era.restaurant.versionoct.menu.ProductInformationActivity.KEY_TITLE));
qty.setText(item.get(com.era.restaurant.versionoct.menu.ProductInformationActivity.KEY_QTY));
cost.setText(item.get(com.era.restaurant.versionoct.menu.ProductInformationActivity.KEY_COST));
total.setText(item.get(com.era.restaurant.versionoct.menu.ProductInformationActivity.KEY_TOTAL));
qty.addTextChangedListener(new TextWatcher() {
public void onTextChanged(CharSequence s, int start, int before,
int count) {
if (!qty.getText().toString().equals("")
|| !qty.getText().toString().equals("")) {
// accept quantity by user
itemquantity = Integer.parseInt(qty.getText()
.toString());
//here You update value, You have item variable with current item
item.put(KEY_QTY, itemquantity);
//all object are always passed by reference so that is enough to update it
}
}
onResume中的
@Override
public void onResume()
{
super.onResume();
//get item to display
HashMap<String, String> item = new HashMap<String, String>();
item = Constants.sItem_Detail.get(id); //i don't know how You identify items, but here You need to get correct item from list.
edit_qty_code.setText(item.get(KEY_QTY));
}
答案 2 :(得分:-1)