所以我有一个自定义,ArrayAdapter所以我可以使用可用的标题/副标题视图ListView.我有一个EditText接受字符串并过滤适配器.
过滤器工作的意义在于它正在过滤正确的对象(我可以通过点击它来判断它并使用正确的"额外"来启动意图.)
但是,即使过滤工作,适配器中的项目也不会更新以显示正确的信息...标题和副标题不正确.
让我们说我们有0到9的项目ListView,我过滤到3项搜索,并说让过滤的项目显示5,6,9 ... 3项,但它的前3项目的原- 搜索ListView(0-2).如果我单击项目2(第三项),则9的内容包含在新意图中.这对于搜索条件是正确的,但标题确实反映了正确的信息.
我不确定我需要告诉ListView刷新什么.我不认为它notifyDataSetChanged();
任何帮助表示赞赏.谢谢!
public class myListAdapter extends ArrayAdapter<Pizza>{
private ArrayList<Pizza> items;
private PizzaViewHolder myListHolder;
private class PizzaViewHolder{
TextView title;
TextView subtitle;
}
public myListAdapter(Context context, int textViewResourceId, ArrayList<Pizza> items) {
super(context, textViewResourceId, items);
this.items = items;
// TODO Auto-generated constructor stub
}
@Override
public View getView(int pos, View convertView, ViewGroup parent){
View v = convertView;
if(v == null){
LayoutInflater vi = …Run Code Online (Sandbox Code Playgroud) 这是代码,我使用了自定义适配器,并应用了Filter方法,现在当输入退格键时,ListView不会更新,当从项目活动切换回来时.我读到它是过滤器中的一个错误,但是如何绕过它,我知道已经实现了我想要的这种设置的应用程序.
public class IndexPageActivity extends Activity implements OnItemClickListener{
ListView listView;
EditText editTextB;
PagesAdapter adapter1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = (ListView) findViewById(R.id.pageList);
editTextB = (EditText) findViewById(R.id.searchB);
adapter1 = new PagesAdapter(this);
listView.setAdapter(adapter1);
adapter1.notifyDataSetChanged();
listView.setOnItemClickListener(this);
editTextB.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) {
IndexPageActivity.this.adapter1.getFilter().filter(cs.toString());
adapter1.notifyDataSetChanged();
}
@Override
public void beforeTextChanged(CharSequence arg0, int arg1,
int arg2, int arg3) { }
@Override
public void afterTextChanged(Editable arg0) { }
});
}
@Override
public void …Run Code Online (Sandbox Code Playgroud)