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);

                    }
           });


        }
    });

}
4

2 に答える 2

0

よし、まずはTake outaddTextChangedListener(new TextWatcher()..ボタンから…

onCreate()アクティビティに入れます。

クラスレベルの文字列変数を定義する

String filterString = "";

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

そしてボタンのonClick()

この一行だけ入れて、

SearchListView.this.arrad.getFilter().filter(filterString);
于 2012-12-14T10:48:07.693 に答える
0

これが機能しない理由は、 . のTextChangedListener中にa を追加したためですonClickListener

これは、ボタンをクリックすると、テキストが変更されるのを待つリスナーが追加されることを意味します。

テキストは既に変更されているため、このリスナーは必要ありません。

onClicklistenerそれ自体から SearchList を操作する

SearchListView.this.arrad.getFilter().filter(reqdString);
于 2012-12-14T10:48:00.787 に答える