0

重複の可能性:
カーソル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());

        }
    });


    };
4

1 に答える 1

0

この問題を自分で整理することができました。これは主に、「FilterQueryProvider」をインポートしていなかったことが原因でした。

于 2013-02-04T21:13:03.397 に答える