0

TextChangedListener を使用した検索用のコードが機能しません。私は ListView で何も変更されていません。私の問題はどこにあると言えますか? 私はこの記事http://www.androidhive.info/2012/09/android-adding-search-functionality-to-listview/でそれを読み、他の資料でも試しました

    list.setTextFilterEnabled(true);
    list.setFilterText(s.toString());

しかし、それも仕事ではありませんでした

code:

   public class SicksListActivity extends Activity implements TextWatcher{
private DBHelper dbHelper;
private SimpleCursorAdapter adapter;
public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.sickness_list); 
    displaySicks();
}
private void displaySicks(){
    Queries queries=new Queries();
    Cursor c=queries.getAllSicks(this);
    ListView list=(ListView)findViewById(android.R.id.list);
    EditText inputText=(EditText)findViewById(R.id.sick_input_search);
    inputText.addTextChangedListener(this);
    String [] colums={SicknessDB.NAME};
    int [] views={android.R.id.text1};
    adapter=new SimpleCursorAdapter(this,
            android.R.layout.simple_expandable_list_item_1, c, colums,views);
    list.setAdapter(adapter);
}

public void afterTextChanged(Editable s) {
    // TODO Auto-generated method stub

}
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
    // TODO Auto-generated method stub

}
public void onTextChanged(CharSequence s, int start, int before, int count) {
    // TODO Auto-generated method stub
    this.adapter.getFilter().filter(s);

}

}

4

2 に答える 2

0

入れてみる

list.invalidateViews();
this.adapter.notifyDataSetChanged();

this.adapter.getFilter().filter(s);

this.adapterあなたの目に見えるListViewの実際のアダプターであると仮定します。

于 2013-01-26T12:00:24.590 に答える
0

あなたが実装しているように実装しませんでしたが、これを複数回実行しましたが、完璧に機能します:

public void onTextChanged(CharSequence s,int start, int before,int count)   //Filter Data When Entering Data On EditText
        {
            Cursor FilteredListCursor = YourDBAdapter.instance.CursorFilteredData(s.toString());    //Retrieve Filtered Cursor
            ZoneCardListadapter.changeCursor(FilteredListCursor);

        }
于 2013-01-26T11:34:35.763 に答える