【发布时间】:2018-04-03 05:08:09
【问题描述】:
任何人都可以帮助我如何修复列表视图搜索视图的错误结果。例如,我有来自列表视图的数据 (1,2,3,4,5) 当我从 searchview 搜索数据 2 并单击它时,总是显示它的数据 1,当我没有从 searchview 搜索数据时,结果如果为真,我点击数据 1 显示 1、2 显示 2
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
listView = (ListView) findViewById(R.id.listview);
MaterialSearchBar searchBar = (MaterialSearchBar) findViewById(R.id.searchBar);
searchBar.setHint("Search..");
searchBar.setSpeechMode(true);
final String[] values= new String[]{"cemento","muro","puerta"};
final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.activity_list_item,android.R.id.text1,values);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view,
int position, long id) {
if(position==0){
Intent myintent = new Intent(view.getContext(),cemento.class);
startActivityForResult(myintent,0);
}
if(position==1){
Intent myintent = new Intent(view.getContext(),muro.class);
startActivityForResult(myintent,1);
}
if(position==2){
Intent myintent = new Intent(view.getContext(),puerta.class);
startActivityForResult(myintent,2);
}
}
});
searchBar.addTextChangeListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
adapter.getFilter().filter(charSequence);
}
@Override
public void afterTextChanged(Editable editable) {
}
});
}}
【问题讨论】:
标签: android list listview search