2017-10-05 44 views
0

我正在使用addTextChangedListener(...)使用ArrayList中的Filter來獲取匹配的字符串。 我可以很容易地過濾匹配的字符串,但是,我想如果輸入的字符串與arraylist記錄不匹配,然後顯示toast未找到該記錄。如果記錄不匹配,則顯示Toast

這是我addTextChangedListener()方法

etserach.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) { 

     String st = etserach.getText().toString(); 
     if (!s.equals("") && s.length() > 0) { 
      adapter_filter.filter(st); 
     } else { 
      adapter_filter.filter(st); 
     } 
    } 
} 

這就是過濾器()方法適配器

public void filter(String charText) { 
    charText = charText.toLowerCase(Locale.getDefault()); 
    resultArrayshort.clear(); 
    if (charText.length() == 0) { 
     resultArrayshort.addAll(citylistNew); 
    } else { 
     for (int i = 0; i < citylistNew.size(); i++) { 
      String fullname = citylistNew.get(i).getClientNameE(); 
      if (fullname.toLowerCase(Locale.getDefault()).contains(charText)) { 
       resultArrayshort.add(citylistNew.get(i)); 
      } 
      /* else{ 
       Toast.makeText(mContext,"Record not found",Toast.LENGTH_SHORT).show(); 
      } */ 
     } 
    } 
    notifyDataSetChanged(); 
} 
+0

你想要什麼?吐司的語法或邏輯?爲什麼它沒有顯示? –

+0

目前還不清楚你試圖達到什麼目的。 –

+0

嗨,爲rpl thnx,讓我們假設{「abc」,「acb」,「aab」}這3條記錄在我的arraylist和即時通訊過濾editText輸入「aaQ」,那麼它應該顯示味精「記錄未找到」 – nidhi

回答

0

嗨@nidhi for循環檢查resultArray的大小,如果它是空然後顯示吐司

+0

嗨,thp的rpl和我arraylist不是空的,我的記錄是不匹配前。 {「abc」,「acb」,「aab」}這3條記錄在我的數組列表中,並且在一個過濾editText中輸入「aaQ」,那麼它應該顯示味精「沒有找到記錄」 – nidhi

+0

@nidhi您必須嘗試我的答案 – YoLo

+0

否,它不工作。 – nidhi

0

後resultArrayshort的notifydatasetchanged檢查大小,如果發現空,則表明敬酒

if(resultArrayshort.isEmpty()){ 

//show toast 

} 
+0

@nidhi我想我已經回答了第一個 – YoLo