android自动循环筛选,Android操作栏搜索:如何按列表项的属性筛选列表?

我有一个列表视图,其中包含一个列表项,其中包含很少的文本视图和一个复选框.使用操作栏搜索,我需要通过文本视图值过滤掉列表.

这是我需要按“优先级”过滤的列表.

这是我用来从数据采用者中过滤列表的方法.

@Override

public boolean onCreateOptionsMenu(Menu menu) {

MenuInflater inflater = getMenuInflater();

inflater.inflate(R.menu.main, menu);

SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);

SearchView searchView = (SearchView) menu.findItem(R.id.action_search).getActionView();

searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));

searchView.setIconifiedByDefault(false);

SearchView.OnQueryTextListener textChangeListener = new SearchView.OnQueryTextListener()

{

@Override

public boolean onQueryTextChange(String newText)

{

// this is your adapter that will be filtered

dataAdapter.getFilter().filter(newText);

System.out.println("on text chnge text: "+newText);

return true;

}

@Override

public boolean onQueryTextSubmit(String query)

{

// this is your adapter that will be filtered

dataAdapter.getFilter().filter(query);

System.out.println("on query submit: "+query);

return true;

}

};

searchView.setOnQueryTextListener(textChangeListener);

return super.onCreateOptionsMenu(menu);

}

我已将dataAdopter设置为listview,其中包含少量元素,即3个文本视图和一个复选框.

// create an ArrayAdaptar from the String Array

dataAdapter = new MyCustomAdapter(this, R.layout.task_info, taskList);

listView = (ListView) findViewById(R.id.listView1);

// Assign adapter to ListView

listView.setAdapter(dataAdapter);

但是当我按以下方式设置适配器时;使用一个字符串数组值,过滤发生没有任何问题

String[] dataArray = new String[] {"High","Medium", "Low", "Medium", "High", "Low","High"};

listView = (ListView) findViewById(R.id.listview);

myAdapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, dataArray);

listView.setAdapter(myAdapter);

有没有什么方法可以用来按列表项中的文本视图的值来过滤列表?或者是否有任何替代方法来实现所需的功能.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值