フィールド名、コード、およびモバイルを持つモデルクラス配列リストがあります。私はすべての検索ビューを使用したい。私は名前検索ビューXYZで、モバイル検索ビュー9768で書く場合たとえば、それはあなたがループを使用して、各項目の値を比較それを行うことができますXYZと9768.単一配列リストモデルクラスデータの複数の検索ビュー
searchMasterList2.add(new SearchItemMaster("111", "222", "333"));
searchMasterList2.add(new SearchItemMaster("555", "333", "444"));
searchMasterList2.add(new SearchItemMaster("222", "444", "555"));
searchMasterList2.add(new SearchItemMaster("333", "111", "222"));
searchMasterList2.add(new SearchItemMaster("444", "555", "111"));
final android.support.v7.widget.SearchView searchView1 = (android.support.v7.widget.SearchView) getView().findViewById(R.id.item_name_edtv);
searchView1.setOnSearchClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
is_click_search_item=true;
is_click_search_group=false;
}
});
searchView1.setOnQueryTextListener(this);
searchView1.setOnQueryTextFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
is_click_search_item=true;
is_click_search_group=false;
}
});
final android.support.v7.widget.SearchView searchView2 = (android.support.v7.widget.SearchView) getView().findViewById(R.id.group_edtv);
searchView2.setOnSearchClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
is_click_search_item=false;
is_click_search_group=true;
}
});
searchView2.setOnQueryTextListener(this);
searchView2.setOnQueryTextFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
is_click_search_item=false;
is_click_search_group=true;
}
});
@Override
public boolean onQueryTextChange(String newText) {
final List<SearchItemMaster> filteredModelList = filter(searchMasterList2, newText);
Log.v("App", newText + ", " + searchMasterList2.size() + ", " + filteredModelList.size());
adapter.animateTo(filteredModelList);
recyclerView.scrollToPosition(0);
return false;
}
private List<SearchItemMaster> filter(List<SearchItemMaster> numbers, String input_text) {
input_text = input_text.toLowerCase();
ArrayList<SearchItemMaster> filteredCompanyList = new ArrayList<>();
for (SearchItemMaster searchItemMaster : numbers) {
if (is_click_search_group) {
final String moblieNo = searchItemMaster.getMoblieNo();
if (moblieNo.contains(input_text)) {
filteredCompanyList.add(searchItemMaster);
}
}
if (is_click_search_item) {
final String code = searchItemMaster.getCode().toLowerCase();
if (code.contains(input_text)) {
filteredCompanyList.add(searchItemMaster);
}
}
}
return filteredCompanyList;
}
それは私のために働いていない..しかし、私は解決策を見つけるが...おかげでたくさんのコードを以下と**私のため正常に動作変更しました –