1. 程式人生 > >EditText輸入為空button不可點擊搜索

EditText輸入為空button不可點擊搜索

res keyevent code andro rgb editable alt ati back

一丶任務詳情

技術分享


二丶改動後演示效果

技術分享

三丶改動過程

分析:非常明顯這裏是須要監聽EditText,推斷輸入字符串長度是否不為0來改變Button樣式

首先的屢清楚代碼邏輯在適當的位子加監聽推斷是最好的處理方法,然而並沒有理清楚。原團隊用Eclipse開發且java用的多。代碼並沒透徹理解(屢清楚某個功能點定會與大家分享)所以呢這裏僅僅好自己加入

第一步xml設置button不可點擊並改動樣式

android:background="@color/login_bar_btn_enable"
android:enabled="false"
註意:這裏button不可點擊是設置enable屬性

第二步監聽EditText

這裏一般常會用到的鍵盤監聽

  1. edittext.setOnKeyListener(new View.OnKeyListener() {
  2. @Override
  3. public boolean onKey(View v, int keyCode, KeyEvent event) {
  4. textview.setText(edittext.getText());
  5. return
    false;
  6. }
  7. });
開始我也是使用這樣的。然而達到的效果是非得輸入鍵盤點擊Enterbutton才可點擊,明顯須要的並非這樣的結果,正確的代碼片段貼上

//輸入框為空不可點擊 by jin
edt_orderNo.addTextChangedListener(new TextWatcher() {
   @Override
   public void beforeTextChanged(CharSequence s, int start, int count, int after) {
   }

   @Override
   public void 
onTextChanged(CharSequence s, int start, int before, int count) { // 推斷輸入不為空。button可點擊 if (edt_orderNo.length() != 0) { but_queryChange.setEnabled(true); but_queryChange.setBackgroundResource(R.drawable.login_bar_btn); } else { but_queryChange.setEnabled(false); but_queryChange.setBackgroundResource(R.color.login_bar_btn_enable); } } @Override public void afterTextChanged(Editable s) { } });

此方法是監聽EditText輸入過程。在onTextChanged中加入是為了更具體的監聽輸入

onTextChanged中的推斷就不在贅述了

小結:

1.百度的姿勢非常重要,說清楚需求才找得到想要的代碼

2.依舊小白一個,一個功能點的代碼都不能屢的十分清楚


歡迎增加Android&ios學習群:319010802

EditText輸入為空button不可點擊搜索