撰寫APP過程中會遇到請user輸入資料為數字的情況
程式碼如下:
正規表示法判斷輸入值是否為數字
參考android官方網站文件
https://developer.android.com/reference/java/util/regex/Pattern.html
宣告:
確認是否為空值
宣告:
使用 if... else 涵式 設計對應的條件在下方TextView做對應的顯示文字
在Android Studio中開啟 activity_main.xml (app -> layout -> activity_main.xml )
在Design頁面中,點擊 EditText 物件
右邊選單中,展開inputType設定
將 number 選項打勾
實際執行於手機, 點擊 EditText 欄位 (請輸入金額) 出現數字鍵盤
程式碼如下:
public void clickCheck () { btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String money = etMoney.getText().toString(); String day = etDay.getText().toString(); Pattern pattern = Pattern.compile("\\d+"); Matcher matcher_m = pattern.matcher(money); Matcher matcher_d = pattern.matcher(day); boolean moneyEmpty = etMoney.getText().toString().isEmpty(); boolean dayEmpty = etDay.getText().toString().isEmpty(); if (moneyEmpty || dayEmpty){ tvMessage.setText("錢&假期欄位資訊不可為空白!!"); } else if (matcher_d.matches() && matcher_m.matches()) { int m = Integer.valueOf(money); int d = Integer.valueOf(day); if (m >= 20000) { if (d >= 5) { tvMessage.setText("可以去泰國玩 "); } else { tvMessage.setText("有錢沒閒"); } } else { if (d >= 5) { tvMessage.setText("有閒沒錢"); } else { tvMessage.setText("既沒錢又沒閒\n真可憐!"); } } } else if (!matcher_d.matches() && !matcher_m.matches()){ tvMessage.setText("請輸入數字!!\n(錢&假期欄位錯誤!!)"); } else if (!matcher_m.matches()){ tvMessage.setText("請輸入數字!!\n(錢欄位錯誤!!)"); } else { tvMessage.setText("請輸入數字!!\n(假期欄位錯誤!!)"); } } });}
正規表示法判斷輸入值是否為數字
參考android官方網站文件
https://developer.android.com/reference/java/util/regex/Pattern.html
宣告:
Pattern pattern = Pattern.compile("\\d+");
Matcher matcher_m = pattern.matcher(money);
Matcher matcher_d = pattern.matcher(day);
確認是否為空值
宣告:
boolean moneyEmpty = etMoney.getText().toString().isEmpty(); boolean dayEmpty = etDay.getText().toString().isEmpty();
使用 if... else 涵式 設計對應的條件在下方TextView做對應的顯示文字
if (moneyEmpty || dayEmpty){ tvMessage.setText("錢&假期欄位資訊不可為空白!!"); } else if (matcher_d.matches() && matcher_m.matches()) { int m = Integer.valueOf(money); int d = Integer.valueOf(day); if (m >= 20000) { if (d >= 5) { tvMessage.setText("可以去泰國玩 "); } else { tvMessage.setText("有錢沒閒"); } } else { if (d >= 5) { tvMessage.setText("有閒沒錢"); } else { tvMessage.setText("既沒錢又沒閒\n真可憐!"); } } } else if (!matcher_d.matches() && !matcher_m.matches()){ tvMessage.setText("請輸入數字!!\n(錢&假期欄位錯誤!!)"); } else if (!matcher_m.matches()){ tvMessage.setText("請輸入數字!!\n(錢欄位錯誤!!)"); } else { tvMessage.setText("請輸入數字!!\n(假期欄位錯誤!!)");}
留言
張貼留言