如果我输入com.mea.mario2.something.movie,我的应用只会给出结果 我不能让我的应用程序按电影名称搜索。一直在寻找几个小时,我无法弄清楚过滤器是如何工作的。
包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);
}
}
*/
}