2013-07-06 110 views
-1

我有分裂的文本/數字的方法,我要拆分的文本編輯線的數量問題,我有這樣的代碼確實我做了錯誤的方式? 這裏是我的全部代碼:如何在android .split()中拆分數字;

package com.trafika.rafa; 

import java.util.Scanner; 

import android.os.Bundle; 
import android.app.Activity; 
import android.graphics.Color; 
import android.view.Menu; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 

public class MainActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     Button calculate = (Button) findViewById(R.id.calculateB); 
     final TextView RM = (TextView) findViewById(R.id.returnMoney1); 
     final EditText GM = (EditText) findViewById(R.id.gMoney); 
     final EditText COP = (EditText) findViewById(R.id.cOP); 

     calculate.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       try { 
        int givedMoney = Integer.parseInt(GM.getText().toString()); 
        // String returnMoney = RM.getText().toString(); 
        // String CostOfProduct = COP.getText().toString(); 
        int CostOfProduct = Integer.parseInt(COP.getText().toString()); 
        String parts[] = COP.getText().toString().split(" "); 
        for (int i = 0; i < parts.length; i++) { 
         CostOfProduct += Integer.parseInt(parts[i]); 
        } 
        int returnmoney; 
        returnmoney = givedMoney - CostOfProduct; 
        if (givedMoney < CostOfProduct) { 
         returnmoney = CostOfProduct - givedMoney; 
         RM.setTextColor(Color.RED); 
         RM.setText("Need more " + returnmoney + " den"); 
         return; 
        } 
        RM.setTextColor(Color.WHITE); 
        RM.setText(returnmoney + " den"); 
       } catch (Exception e) { 
        e.printStackTrace(); 
       } 

      } 
     }); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 

} 

現在生病時運行應用程序不計算好數量的困惑

+0

什麼是你所得到的錯誤?你可以粘貼LOG-CAT錯誤。 – Saggy

+0

不,我不能運行應用程序,也許沒有像.split()這樣的方法。 「方法split(String)對於Editable類型是未定義的」這是給予 –

+0

getText()。toString()。split(「」); – techiServices

回答

1

不知道是什麼錯誤,你正在經歷。您是否嘗試過這樣的:

COP.getText().toString().split("\\s+"); 

String.split()需要一個正則表達式作爲其第一個參數。通過使用這個正則表達式,您還可以處理某個人有多個空白字符的情況。

此外,我不明白你爲什麼初始化的Integer.parseInt CostOfProduct(COP.getText()的toString());然後使用相同TextView的部分添加到它。

我會改用此:

   int CostOfProduct = 0; 
       String parts[] = COP.getText().toString().split("\\s+"); 

更好的實現也將佔到的getText()返回null或空字符串。

+0

好點,因爲它現在是要麼不能與NumberFormatException的第2行,或引起'CostOfProduct'設置爲COP'的'的整數值的兩倍的代碼。 –

0

沒有異常聲明很難說,但我相信COP.getText()的返回類型不是java.lang.String(糾正我,如果我錯了,我不能在這個時候測試它)。但是,這應該會導致編譯錯誤。如果這是問題,那麼COP.getText().toString().split(" ")應該工作。