Java 在android中将字符串转换为bigdecimal

Java 在android中将字符串转换为bigdecimal,java,android,string,converter,bigdecimal,Java,Android,String,Converter,Bigdecimal,嗨,我如何在android中将字符串转换为bigdecimal 这是我的第一个活动: public class ViewCartActivity extends Activity { String mGrandTotal; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceSta

嗨,我如何在android中将字符串转换为bigdecimal

这是我的第一个活动:

public class ViewCartActivity extends Activity {

String mGrandTotal;
@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.viewcartactivity);

    ListView mLstView1 = (ListView) findViewById(R.id.listView1);
    TextView mTxtViewGrandTotal = (TextView) findViewById(R.id.mTxtViewGrandTotalValue);
    Button mBtnSubmit = (Button) findViewById(R.id.mBtnSubmit);

    ViewCartAdapter mViewCartAdpt = new ViewCartAdapter(
            ViewCartActivity.this);

    mLstView1.setAdapter(mViewCartAdpt);

    if (Constants.mItem_Detail.size() > 0) {
        Double mGTotal = Double.parseDouble(Constants.mItem_Detail.get(0)
                .get(SingleMenuItem.KEY_TOTAL));
        for (int i = 1; i < Constants.mItem_Detail.size(); i++) {
            mGTotal = mGTotal
                    + Double.parseDouble(Constants.mItem_Detail.get(i).get(
                            SingleMenuItem.KEY_TOTAL));
        }

        mGrandTotal = String.valueOf(mGTotal);
        mTxtViewGrandTotal.setText("$" + mGrandTotal);
    }

    mBtnSubmit.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

             Intent i = new Intent(getApplicationContext(), CustomerLogin.class);
            i.putExtra("GrandTotal", mGrandTotal);
                startActivity(i);

        }
      String mGrandTotal;
      /** Called when the activity is first created. */
       @Override
       public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.customer_login);
       Bundle b = getIntent().getExtras();

         String total = b.getString("GrandTotal");
         -----
       ------
           if(isUserValidated && isPasswordValidated)
              {
            String s= getIntent().getStringExtra(mGrandTotal);
                Intent intent = new Intent(CustomerLogin.this,PayPalIntegrationActivity.class);
                intent.putExtra(mGrandTotal, s);

           startActivity(intent);

              }
PayPalIntegrationActivity.java(第三个活动)如下所示:

public class PayPalIntegrationActivity extends Activity implements OnClickListener {

 String mGrandTotal;
    private PayPal mPayPal;
   private CheckoutButton launchPayPalButton;

@Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_pay_pal_integration);
       -------
        ------
          @Override
    public void onClick(View v) {

            payWithPaypal();
        }


         private PayPalPayment  payWithPaypal() {
                PayPalPayment newPayment = new PayPalPayment();
                Intent in = getIntent();
                String total = in.getStringExtra(mGrandTotal);
                BigDecimal sPrice = new BigDecimal(total);

        newPayment.setSubtotal(sPrice);
        newPayment.setCurrencyType(Currency.getInstance(Locale.US));
我必须将总价值传递给我的paypalintegration活动

但我的控制台窗口显示以下错误:

      12-21 05:52:09.571: E/AndroidRuntime(782): FATAL EXCEPTION: main
       12-21 05:52:09.571: E/AndroidRuntime(782): java.lang.NullPointerException
       12-21 05:52:09.571: E/AndroidRuntime(782):   at java.math.BigDecimal.<init>(BigDecimal.java:483)
      12-21 05:52:09.571: E/AndroidRuntime(782):    at com.ssmobileproductions.catalogue.PayPalIntegrationActivity.payWithPaypal(PayPalIntegrationActivity.java:74)
        12-21 05:52:09.571: E/AndroidRuntime(782):  at com.ssmobileproductions.catalogue.PayPalIntegrationActivity.onClick(PayPalIntegrationActivity.java:66)
      12-21 05:52:09.571: E/AndroidRuntime(782):    at android.view.View.performClick(View.java:2408)
12-21 05:52:09.571:E/AndroidRuntime(782):致命异常:main
12-21 05:52:09.571:E/AndroidRuntime(782):java.lang.NullPointerException
12-21 05:52:09.571:E/AndroidRuntime(782):at java.math.BigDecimal.(BigDecimal.java:483)
12-21 05:52:09.571:E/AndroidRuntime(782):在com.ssmobileproductions.catalog.PayPalIntegrationActivity.payWithPaypal(PayPalIntegrationActivity.java:74)
12-21 05:52:09.571:E/AndroidRuntime(782):在com.ssmobileproductions.catalog.PayPalIntegrationActivity.onClick(PayPalIntegrationActivity.java:66)
12-21 05:52:09.571:E/AndroidRuntime(782):在android.view.view.performClick(view.java:2408)
请帮帮我,我的密码出了什么问题

我希望o/p
是:

mGrandTotal值从我的第一个活动传递到最后一个活动(paypalintegration活动)

mGrandTotal值设置为以下行:newPayment.setSubtotal(sPrice)


我该怎么办。请告诉我您遇到了错误,因为您正试图将非数字字符串
总计
转换为一个大十进制数。将一些数值分配给
KEY\u TOTAL
,例如

          static final String KEY_TOTAL = "0.0";//some numeric value here

您不会因为将字符串转换为Bigdecimal而收到错误,因为该字符串有一个Bigdecimal的构造函数 BigDecimal(字符串val) ,由于total的值为null且无法转换为BigDecimal,因此出现错误。你可以这样做

      String total="0.0";
      if(in.getStringExtra(mGrandTotal)!=null && !in.getStringExtra(mGrandTotal).isEmpty()){
            total=in.getStringExtra(mGrandTotal);
      }
       BigDecimal sPrice = new BigDecimal(total);

希望这将为你工作

您希望
BigDecimal
如何将字符串
“total”
转换为一些数值?通过xml解析动态添加总值。这就是为什么我不必直接写入numaric值。我得到的是静态最终字符串键\u total=“total”;这些来自我以前的活动。如何添加总值设置为newPayment.setSubtotal(sPrice);请帮忙me@user1897014以上答案与你之前的帖子相反。现在我打赌这个语句
stringtotal=in.getStringExtra(KEY\u total)
没有获取字符串值,
total
被分配了
null
,因此出现了问题。请查看我更新的问题并为我提供解决方案。是的,我仅获取null值。如何将mGrandTotal值从我的第一个活动传递到最后一个活动(paypalintegration活动)mGrandTotal值设置为以下行:newPayment.setSubtotal(sPrice);请帮助mei获得方法isEmpty()未为类型字符串定义这些错误。我的“编译器符合性级别为1.6。如何清除这些错误使用!in.getStringExtra(mGrandTotal).equals(“”)而不是!in.getStringExtra(mGrandTotal).isEmpty(),如果它可以工作,请投票支持我的答案。。!!!