У меня есть список, каждая строка которого состоит из основного элемента и подпункта.Я использую фильтр для обновления списка, когда пользователь вводит текст поиска.При наборе элементов в списке все отображаются в соответствии с набранными алфавитами, однако каждый элемент отображается дважды.Ниже мой код:
public class NewReqFragment extends ListFragment
{
ListView newReqList;
LayoutInflater inflater;
String[] from = new String[] {"mainrow", "subrow"};
EditText searchBar = null;
SimpleAdapter sAdapter =null;
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
}
public void onActivityCreated(Bundle savedInstanceState)
{
super.onActivityCreated(savedInstanceState);
newReqList = this.getListView();
searchBar = (EditText)this.getActivity().findViewById(R.id.searchbar);
List<HashMap<String, String>> fillMaps = new ArrayList<HashMap<String, String>>();
for(int i = 0; i < ListItemStrings.NEWREQTITLES.length; i++)
{
HashMap<String, String> map = new HashMap<String, String>();
map.put("mainrow",ListItemStrings.NEWREQTITLES[i]);
map.put("subrow",ListItemStrings.NEWREQCHILDLIST[i]);
fillMaps.add(map);
}
sAdapter = new SimpleAdapter (this.getActivity(), fillMaps
, R.layout.simple_list_item_checkable_1,
from, new int[] {R.id.text1, R.id.text2});
newReqList.setAdapter(sAdapter);
searchBar.addTextChangedListener(filterTextWatcher);
}
private TextWatcher filterTextWatcher = new TextWatcher()
{
public void afterTextChanged(Editable s)
{
}
public void beforeTextChanged(CharSequence s, int start, int count,
int after)
{
}
public void onTextChanged(CharSequence s, int start, int before,
int count)
{
sAdapter.getFilter().filter(s);
sAdapter.notifyDataSetChanged();
}
};
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
View v = inflater.inflate(R.layout.newreqscrlayout, container,false);
return v;
}
}
Может кто-нибудь, пожалуйста, помогите мне узнать, что не так?