重複の可能性:
カーソルsetFilterQueryProviderの問題
リストビューにエディットテキストフィルターを設定しようとしています。
現在、次のコードがありますが、cursorAdapterオブジェクトの「setFilterQueryAdapter」でエラーが発生し続けます。
このコードは「OnCreateメソッド」にあり、エラーの1つは、「void」の戻りタイプが正しくないと主張しているため、onCreateから外れているはずですが、どこにあるのかわかりません。
うまくいけば、誰かが私がどこで間違っているのか教えてくれるでしょう。コードは次のとおりです。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.appointmentview);
searchedAppView = (ListView)findViewById(android.R.id.list);
searchAppoints = (ImageButton) findViewById(R.id.btnSearchAppointName);
searchAppName = (EditText) findViewById(R.id.inputAppointName);
DBHandlerApp DBAppointments = new DBHandlerApp(this, null, null);
DBHandlerApp searchApps = new DBHandlerApp(this, null, null);
searchApps.open();
Cursor cursor = searchApps.getAppointmentsData();
searchApps.close();
startManagingCursor(cursor);
String [] from = new String [] {DBAppointments.KEY_NAMEAPP, DBAppointments.KEY_TYPEAPP, DBAppointments.KEY_TIMEAPP, DBAppointments.KEY_DATEAPP, DBAppointments.KEY_COMMENTAPP};
int [] to = new int [] {R.id.txtAppointName, R.id.txtAppointType, R.id.txtAppointTime, R.id.txtAppointDate, R.id.txtAppointCom};
cursorAdapter = new SimpleCursorAdapter(this, R.layout.setappointviews, cursor, from, to);
searchedAppView.setAdapter(cursorAdapter);
searchedAppView.setTextFilterEnabled(true);
searchAppoints.setOnClickListener(this);
searchAppName.addTextChangedListener(new TextWatcher()
{
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
@Override
public void afterTextChanged(Editable s) {
cursorAdapter.getFilter().filter(s.toString());
}
});
DBHandlerApp changedAppoint = new DBHandlerApp (this, null, null);
********** ERROR **********
cursorAdapter.setFilterQueryProvider(FilterQueryProvider()
{
public Cursor runQuery(CharSequence constraint)
{
changedAppoint.open();
return changedAppoint.getChanges(constraint.toString());
}
});
};