4

我正在编写一个购物车应用程序,并允许用户将项目添加到购物车活动中,在购物车项目列表中我使用3 个文本视图作为数值(即:项目成本、数量、总计),这些值现在来自 ProductInformationActivity.java想允许用户通过单击该特定项目来更新仍在购物车活动中的任何项目,我想在ProductInformationActivity.java中使用现有详细信息打开该项目,例如:用户先前输入的数量(例如:我们看到在购物车应用程序中),为此我在我的购物车适配器中使用以下代码....

     public View getView(final int position, View convertView, ViewGroup parent) {
    // TODO Auto-generated method stub
    View vi = convertView;
    if (convertView == null)
        vi = inflater.inflate(R.layout.listrow_cart, null);
        vi.setClickable(true);
        vi.setFocusable(true);          

        vi.setOnClickListener(new OnClickListener() {
        @Override

        public void onClick(View v) 
        {   
            HashMap<String, String> item = Constant.wishProducts.get(position);
            Log.d("CartAdapter", "onClick :: " + item);
            Intent myIntent = new Intent 
            (activity, com.era.restaurant.versionoct.menu.ProductInformationActivity.class);
            Log.d("CartAdapter", "Intent :: " + myIntent);
            myIntent.putExtra("Item", item);
            activity.startActivity(myIntent);        
        }
    });
4

2 回答 2

2

你可以做两件事:

首先,只允许在 EditText 字段中使用数字数据。

EditText其次,通过简单的检查确保您没有空值。

  if(text_cost_code.getText().length() > 0)
    {
   try{
        itemamount = Double.parseDouble(text_cost_code.getText().toString());
     catch(NumberFormatException e)
     {
      }
    }

确保您已将 inputType 定义numbernumberSignedTextView android:inputType="numberSigned"

编辑:

尝试从您的Intent中获取字符串,ProductInformationActivity如下所示:

      String myItemValue = getIntent().getStringExtra("Item");
于 2013-05-01T06:22:15.770 回答
1

编辑:

HashMap<String,String>单击列表项时,您将作为额外发送。

您应该额外获取 HashMap,然后从中获取产品信息。像这样

  HashMap<String,String> items=new HashMap<String,String>();
    if (getIntent().getSerializableExtra("item") != null)
    items = (HashMap<String, String>) getIntent().getSerializableExtra("item");

    String title = items.get(KEY_TITLE);
    String description = items.get(KEY_DESCRIPTION);
    String thumb_url = items.get(KEY_THUMB_URL);
    String cost = items.get(KEY_COST);
    String total =items.get(KEY_TOTAL);

这个

  itemamount = Double.parseDouble(text_cost_code.getText().toString());

导致Exception, 因为要么text_cost_code.getText().toString()不是 aNumber要么它是empty

您需要确保它包含Number,并且不为空。

然后将此代码放入try catchif Exception catch 然后将值更改为0

try{
 itemamount = Double.parseDouble(text_cost_code.getText().toString().trim());
}
catch(NumberFormatException e)
{
itemamount=0;
}
于 2013-05-01T06:15:45.597 回答