Android ArrayAdapter过滤器

时间:2014-02-20 13:47:58

标签: android listview android-listview filtering android-arrayadapter

在我完成IOS版本并遇到问题后,我正在制作一个Android应用程序。

我有一个ListView,顶部是EditText。 当我在EditText中输入文本时,我会过滤ListView中的项目。

private void setupSearch() {
        EditText inputSearch = (EditText) getView().findViewById(R.id.input_search);
        inputSearch.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
                adapter.getFilter().filter(s);

            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {

            }

            @Override
            public void afterTextChanged(Editable s) {

            }
        });
    }

我成功过滤了这些物品。但现在当我点击该项时使用id 0,因为它是ListView中唯一的项目。但是arrayList有多个项目不是filtert所以它会打开id为0的项目.Witch是一个完全不同的项目。

这里我设置了ListView:

private void setupListview() {
    ArrayList test = new ArrayList();
    for (int i = 0; i < list.size(); i++) {
        test.add(list.get(i).getTitle());
    }
    adapter = new ArrayAdapter<ArrayList>(getActivity().getBaseContext(), R.layout.row, R.id.rowTitleView, test);
    ListView List = (ListView) getView().findViewById(R.id.listview_faqs);
    List.setAdapter(adapter);
    List.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
            Intent showNext = new Intent(getActivity(), Activity.class);
            showNext.putExtra("title", list.get(i).getTitle());
            showNext.putExtra("image", list.get(i).getImage());
            getActivity().startActivity(showNext);
        }
    });
}

那么如何过滤项目列表,或者我可以使用其他内容。我有点失落。

0 个答案:

没有答案