作者cha122977 (CHA)
看板AndroidDev
標題Re: [問題] editText的小問題
時間Wed May 23 21:13:04 2012
※ 引述《w999 (天天喝珍奶)》之銘言:
: 我想問一下 我用了很多的EditText來做計算
: 但是只要有一個沒填上數字程式就會出現錯誤然後關閉
: 不曉得怎麼樣才能讓他設定成沒輸入數字等於0
: 或是有辦法提醒說請輸入數子然後不要讓程式直接錯誤關閉嗎..
假設輸入是 editText
String a = editText.getText().toString();
double num; //放這個editText的結果用,等等要運算
if( a.equals("") ){ //editText沒有輸入值
num = 0; //讓其預設是0
} else {
num = Double.parseDouble(a); //轉成要的值
}
還可以判斷一下是不是數字 不過這邊就要用try/catch
以下是加法的範例:
參數說明:
EditText et1, et2; //用來讓使用者輸入變數1及變數2
TextView tv1; //顯示結果用
程式碼:
try {
String s1 = et1.getText().toString(); //取得et1內的字串
double num1; //用來放程式碼內運算用的第一個變數
if( s1.equals("") ) { //如果是空字串
num1 = 0; //讓num1是預設值(也就是0)
} else { //不是空字串
num1 = Double.parseDouble(s1); //轉成double放入num1
}
String s2 = et2.getText().toString(); //取得et2內的字串
double num2; //同上
if( s2.equals("") ) {
num2 = 0;
} else {
num2 = Double.parseDouble(s2);
}
double result = num1 + num2; //加起來
tv1.setText(result + ""); //顯示結果
} catch( NumberFormatException nfe ) { //萬一輸入值轉成double時失敗
tv1.setText("不可輸入數字以外的字"); //顯示結果
}
我也不知道這樣寫好不好 囧> 不過之前是這樣做這樣
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.194.149.39
※ 編輯: cha122977 來自: 123.194.149.39 (05/23 21:13)
※ 編輯: cha122977 來自: 123.194.149.39 (05/23 21:20)
推 tomap41017:xml有設定可以填default嗎? 05/23 21:46
→ cha122977:android:text="@string/字串名" 05/23 22:21
→ cha122977:android:text="字串內容" 不過官方建議不要違反MVC架構~ 05/23 22:22
→ cha122977:要好控制的話在程式碼中需要處用EditText.setText(字串) 05/23 22:23
推 w999:太感謝了我先來試試看 05/24 13:10
推 w999:成功了謝謝 05/24 14:52