android 字符串 转公式,java – 在android中将字符串转换为bigdecimal
嗨我怎么能在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);
}
CustomerLogin.java(下一個活動):
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(第3個活動)如下所示:
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));
我必須將grandtotal值傳遞給我的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.(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)
請幫幫我.我的代碼中有錯誤.
我希望需要o / p是:
mGrandTotal值從我的第一個活動傳遞到最后一個活動(paypalintegration活動)
mGrandTotal值設置為以下行:newPayment.setSubtotal(sPrice);
我該怎么辦.請告訴我
解決方法:
你沒有因為將String轉換為Bigdecimal而得到錯誤,因為有相同的Bigdecimal構造函數
BigDecimal(String 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);
希望這對你有用…… !!!
標簽:android,java,string,converter,bigdecimal
來源: https://codeday.me/bug/20190729/1569841.html
總結
以上是生活随笔為你收集整理的android 字符串 转公式,java – 在android中将字符串转换为bigdecimal的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux如何设置中文输入法(linux
- 下一篇: android studio on/of