阵列适配器筛选器无法正常工作

时间:2015-05-10 23:23:21

标签: android filter android-arrayadapter

如果我输入com.mea.mario2.something.movi​​e,我的应用只会给出结果 我不能让我的应用程序按电影名称搜索。一直在寻找几个小时,我无法弄清楚过滤器是如何工作的。

包com.mea.mario2.something;

import android.content.SharedPreferences;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.Filter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;

import java.util.ArrayList;
import java.util.List;



public class MainActivity extends ActionBarActivity {

    private List<Movie> myMovie = new ArrayList<Movie>();



    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        populateMovieList();
        populateListView();

    }


    private void populateListView() {
        final ArrayAdapter adapter = new MyListAdapter();
        ListView list = (ListView) findViewById(R.id.listView);
        list.setAdapter(adapter);
  EditText et = (EditText) findViewById(R.id.editText);
    et.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {

        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            adapter.getFilter().Filter(s);
        }

        @Override
        public void afterTextChanged(Editable s) {

        }
    });

    }



    private void populateMovieList() {
        myMovie.add(new Movie("05.05.2015","10.05.2015","Movie 1",false,R.drawable.icon));
        myMovie.add(new Movie("05.05.2015","10.05.2015","Movie 1",false,R.drawable.icon));            myMovie.add(new Movie("05.05.2015","10.05.2015","Movie 1",false,R.drawable.icon));            myMovie.add(new Movie("05.05.2015","10.05.2015","Movie 1",false,R.drawable.icon));            myMovie.add(new Movie("05.05.2015","10.05.2015","Movie 1",false,R.drawable.icon));            myMovie.add(new Movie("05.05.2015","10.05.2015","Movie 1",false,R.drawable.icon));

    }

    private class MyListAdapter extends ArrayAdapter<Movie>{
        SharedPreferences sp = getSharedPreferences("MyData",0);


        public MyListAdapter(){
            super(MainActivity.this, R.layout.most_anticipated, myMovie);
        }



        @Override
        public View getView(int position, View convertView, ViewGroup parent) {

            //sets View
            View itemView = convertView;
            if(itemView == null){
                itemView = getLayoutInflater().inflate(R.layout.most_anticipated,parent, false);
            }




            //find Movie
            Movie currentmovie = myMovie.get(position);

            //fill the view
            ImageView imageView = (ImageView) itemView.findViewById(R.id.imageView);
            imageView.setImageResource(currentmovie.getIconID());

            //fill movie title
            final TextView title = (TextView) itemView.findViewById(R.id.movie_title);
            title.setText(currentmovie.getMovieTitle());

            //fill movie title
            final CheckBox checkBox = (CheckBox) itemView.findViewById(R.id.checkBox);
            checkBox.setChecked(sp.getBoolean(title.getText().toString(), false));


            checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
                @Override
                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                    SharedPreferences.Editor editor = sp.edit();
                    if (checkBox.isChecked()) {
                        editor.putBoolean(title.getText().toString(), true);
                        editor.commit();
                    } else {
                        editor.putBoolean(title.getText().toString(), false);
                        editor.commit();
                    }
                }
            });






            return itemView;
        }
    }







   /* @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.most_anticipated:
                // Red item was selected
                return true;
            case R.id.new_movies:
                // Green item was selected
                return true;
            default:
                return super.onOptionsItemSelected(item);
        }
    }
    */



}

0 个答案:

没有答案