2012-07-02 15 views
0

我在這裏使用兩個EditTexts爲得到一些數字作爲整數值..如何比較字符串以及如何將選定的字符串值賦予其他方法?

<EditText 
     android:id="@+id/editText1" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:ems="10" > 

     <requestFocus /> 
    </EditText> 

    <EditText 
     android:id="@+id/editText2" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:ems="10" /> 
    <EditText 
     android:id="@+id/editText3" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:ems="10" /> 

現在即時通訊的規劃做了一些計算 一些

int i1,i2,i3; 
    String t1,t2,t3; 
    EditText et1,et2,et3; 
    int result,comp; 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     et1=(EditText)findViewById(R.id.editText1); 
     et2=(EditText)findViewById(R.id.editText2); 
     et3=(EditText)findViewById(R.id.editText3); 
    //and also storing to string like 
         t1=et1.getText().toString(); 
        t2=et2.getText().toString(); 
         t3=et3.getText().toString(); 
       i1=Integer.parseInt(t1); 
       i2=Integer.parseInt(t2); 
        i3=Integer.parseInt(t3); 
         comp=i2-i1; 
} 

/這裏INT一些X = 10;我的問題是如何檢查我需要得到補償值,如果其選定的(通過輸入兩個EditTexts)其他條件EDITTEXT之一(I3 valsu) 任何一個可以幫助我..../

 public int CalculateUsage(int customersUsage) 
       { 
     int x=10; 
     comp= customersUsage; 
     if(comp!=0) 
     { 
     customersUsage=comp; 
     result=(customersUsage*x) ; 
     } 

     else if(i3 !=null) 
     { 
     customersUsage=i3; 
     result=(customersUsage*x) ; 
     } 
} 
+0

這段代碼有很多問題會導致它無法編譯:int x = 10後面沒有分號,變量comp似乎沒有被聲明,最後,你試圖比較'i3'(一個基元,'int')爲空。你想在這裏建立的實際邏輯是什麼? – DPlusV

+0

此外,沒有強制性的理由「聲明所有變量在頂部」 - 這隻會讓你的代碼非常難以閱讀。您應該在使用它們的位置聲明和設置變量。例如:'EditText et1 =(EditText)findViewById(R.id.editText1);''會使你的代碼*更具可讀性(對於你自己和其他人)。 – DPlusV

+0

okey ...我剛剛做了我的更改告訴我如何得到整數值comp,i3到我的條件 – Crishnan

回答

0

整數。如果字符串表示實際上不是整數,parseInt()將引發異常。你應該做一個try-catch塊,並應分別設置的值設置爲0,或所期望的默認值

try{ 
    i1=Integer.parseInt(t1); 
} catch(Exception e) { 
    i1=0; 
} 
etc... 

因爲編輯文本值目前「[空]」。

編輯: 編輯文本當前爲空,因爲您尚未設置任何內容。 您在佈局中的ems =「10」不是編輯文本值。

+0

是它的工作謝謝老兄..但我需要重置i1,i2當我選擇i3其他i3重置,而i1和i2選擇。該怎麼辦 ? – Crishnan

+0

當你的意思是選擇?鍵入一個值?輸入一個按鈕?在什麼「事件」? – 10s

+0

公頃後,每一個動作完成我需要重置所有文字..我試過,但它得到空值 – Crishnan