我正在创建一个应用并使用搜索查看

时间:2015-08-21 07:08:29

标签: android android-custom-view

当我搜索任何文本时,我正在创建一个应用程序并使用搜索视图和自定义列表适配器然后它显示带有搜索文本的黑色对话框但是我想删除这个黑色对话框而另一个问题是当我选择任何记录时它根据原始列表选择记录请尽快帮助我。

 private LayoutInflater inflater;
    private TextView name_textView, f_name_textView, m_name_textView,
            h_number_textView;
    private ArrayList<SeccUserListAdapterBean> list;
    private ArrayList<SeccUserListAdapterBean> list1;

    public SeccUserListAdapter(Context context,
            ArrayList<SeccUserListAdapterBean> list) {
        super();
        this.list = list;
        inflater = (LayoutInflater) context
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }

    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return list.size();
    }

    @Override
    public Object getItem(int position) {
        // TODO Auto-generated method stub
        return position;
    }

    @Override
    public long getItemId(int position) {
        // TODO Auto-generated method stub
        return position;
    }

    @SuppressLint("InflateParams")
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub
        if (convertView == null)
            convertView = inflater.inflate(R.layout.seccuserlistlayout, null);
        name_textView = (TextView) convertView.findViewById(R.id.textView1);
        f_name_textView = (TextView) convertView.findViewById(R.id.textView2);
        m_name_textView = (TextView) convertView.findViewById(R.id.textView3);
        h_number_textView = (TextView) convertView.findViewById(R.id.textView4);
        name_textView.setText(list.get(position).getBen_name());
        f_name_textView.setText(list.get(position).getBen_fname());
        m_name_textView.setText(list.get(position).getBen_gender());
        h_number_textView.setText(list.get(position).getBen_house_no());

        return convertView;
    }

    @Override
    public Filter getFilter() {
        // TODO Auto-generated method stub
        return new Filter() {

            @SuppressLint("DefaultLocale")
            @Override
            protected FilterResults performFiltering(CharSequence constraint) {
                // TODO Auto-generated method stub
                final FilterResults oReturn = new FilterResults();
                final ArrayList<SeccUserListAdapterBean> results = new ArrayList<SeccUserListAdapterBean>();

                if (list1 == null)
                    list1 = list;
                if (constraint != null) {
                    if (list1 != null && list1.size() > 0) {
                        for (final SeccUserListAdapterBean family : list1) {
                            if (family
                                    .getBen_name()
                                    .toLowerCase()
                                    .contains(
                                            constraint.toString().toLowerCase()))
                                results.add(family);
                        }
                    }
                    oReturn.values = results;
                }
                return oReturn;
            }

            @SuppressWarnings("unchecked")
            @Override
            protected void publishResults(CharSequence constraint,
                    FilterResults results) {
                // TODO Auto-generated method stub
                list = (ArrayList<SeccUserListAdapterBean>) results.values;
                notifyDataSetChanged();

            }

        };

enter image description here

1 个答案:

答案 0 :(得分:0)

对于你问题的第二部分。您可以为列表视图设置单击侦听器并获取所选行的视图。然后将对象的位置传递给适配器的getItem(int position)方法。

ListView lv = (ListView)findViewById(R.id.myList);

lv.setOnItemClickListener(new OnItemClickListener() {

public void onItemSelected(AdapterView<?> parent, View view, int position, long i) 
            {
                  // Get the item here. use the adapter's getItem() method

                 YourObject obj = (YourObject) adapter.getItem(position);
                 // Do whatever with your object.


            }

            @Override
            public void onNothingSelected(AdapterView<?> arg0) {
                // TODO Auto-generated method stub

            }
        });

我认为你没有使用android SDK中的标准SearchView。如果使用不同的库,请参阅相关文档。