0

以前は、ユーザーの検索クエリを処理するためEditTextのを持っていました。onTextChangedListenerこれは次のように行われました。

ed.addTextChangedListener(new TextWatcher(){

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

                textLength = ed.getText().length();
                list.clear();
                isPresent = initIsPresentArray();

                for (int i = 0; i < tempList.length; i++) {
                    for (int j = 0; j < (tempList[i].length() - (textLength - 1)); j++) {
                        if (textLength <= tempList[i].length()) {
                            if (isPresent[i] == false) {
                                if (ed.getText()
                                        .toString()
                                        .equalsIgnoreCase(
                                                (String) tempList[i]
                                                        .subSequence(
                                                                j,
                                                                (j + textLength)))) {
                                    list.add(tempCaseList.get(i));
                                    isPresent[i] = true;
                                }
                            }
                        }
                    }
                    if (list.size() == 0) {
                        error.setText(getResources().getString(R.string.notFound));
                        v.setVisibility(View.GONE);
                    } else {
                        error.setText("");
                        v.setVisibility(View.VISIBLE);
                    }

                    lv.setAdapter(new CustomAdapter(History.this, list));
                }
            }
        });

この厄介なコードは、ユーザーが検索対象を入力している間、その場でListViewを更新します。で非常にうまく機能しますEditText。今、私は自分のプロジェクトにActionBarSherlockを実装していて、SearchWidgetを使用したいと思っています。

ここに画像の説明を入力してください

メニューを膨らませました:

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getSupportMenuInflater();
        inflater.inflate(R.menu.actionbarmenu, menu);
        SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
        SearchView searchView = (SearchView)menu.findItem(R.id.searchCases).getActionView();
        searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
        searchView.setIconifiedByDefault(true);
        searchView.setSubmitButtonEnabled(true);
        return true;
    }

OnTextChangedListenerこれに同じ動作をどのように適用できますSearchViewか?出来ますか?

4

0 に答える 0