2012-12-14 37 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

相关问题