2012-12-14 36 views
1

我想通過在編輯文本上輸入關鍵字並從中輸入一個按鈕來從現有列表中檢索匹配的結果。我正在嘗試此代碼。但它不起作用。請注意,我想按鈕點擊的結果。請解決這個問題。我想在按鈕點擊上獲得搜索結果

edt = (EditText) findViewById(R.id.searchbar); 
Button b = (Button)findViewById(R.id.search_button); 

    b. setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      edt.addTextChangedListener(new TextWatcher() 
       { 


        @Override 
        public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) 
        { 

         // TODO Auto-generated method stub 
            } 



        @Override 
        public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) 
        { 
         // TODO Auto-generated method stub 

        } 



        @Override 
        public void afterTextChanged(Editable arg0) 
        { 
         // TODO Auto-generated method stub 
         SearchListView.this.arrad.getFilter().filter(arg0); 

        } 
      }); 


     } 
    }); 

} 

回答

0

這不工作的原因是因爲你已經添加了一個TextChangedListeneronClickListener內。

這意味着當您單擊該按鈕時,它將添加一個偵聽器,等待文本更改爲

你不需要這個監聽器,因爲你的文本已經改變了。

onClicklistener操縱SearchList本身

SearchListView.this.arrad.getFilter().filter(reqdString); 
0

好吧,首先取出addTextChangedListener(new TextWatcher()..從按鈕的點擊..

放入活動onCreate()

定義類級別的字符串變量

String filterString = ""; 

現在,

@Override 
public void afterTextChanged(Editable arg0) 
{ 
filterString = arg0.toString(); 
} 

而且按鈕的onClick()

只放這一行,

SearchListView.this.arrad.getFilter().filter(filterString); 
+0

它不工作 – dan

相關問題