android 查询

来源:互联网 发布:java编写图书管理系统 编辑:程序博客网 时间:2024/06/06 00:43

废话不多说直接上效果图:



主要的代码如下:


public class MainActivity extends AppCompatActivity {    EditText eSearch;    ImageView ivDeleteText;    ListView mListView;    MyAdapter myAdapter;    ArrayList<String> mData = new ArrayList<String>();    String[] mListTitle = {"adjfijfsa","beyount","csdnjfla","FSFSFSF","1232424","657568758"};    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.fragment_main);        set_eSearch_TextChanged();//设置eSearch搜索框的文本改变时监听器        set_ivDeleteText_OnClick();//设置叉叉的监听器        set_mListView_adapter();//给listview控件添加一个adapter    }    /**     * 设置ListView的Adapter     */    private void set_mListView_adapter() {        mListView = (ListView) findViewById(R.id.mListView);        for(String s:mListTitle){            mData.add(s);        }        myAdapter = new MyAdapter(mData,MainActivity.this);        mListView.setAdapter(myAdapter);    }    /**     * 设置搜索框的文本更改时的监听器     */    private void set_eSearch_TextChanged() {        eSearch = (EditText) findViewById(R.id.etSearch);        eSearch.addTextChangedListener(new TextWatcher() {            public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {}            public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {}            @Override            public void afterTextChanged(Editable s) {                /**这是文本框改变之后 会执行的动作                 * 因为我们要做的就是,在文本框改变的同时,我们的listview的数据也进行相应的变动,并且如一的显示在界面上。                 * 所以这里我们就需要加上数据的修改的动作了。                 */                if (s.length() == 0) {                    ivDeleteText.setVisibility(View.GONE);//当文本框为空时,则叉叉消失                } else {                    ivDeleteText.setVisibility(View.VISIBLE);//当文本框不为空时,出现叉叉                }//                myhandler.post(eChanged);                String data = eSearch.getText().toString();                mData.clear();//先要清空,不然会叠加                getmDataSub(data);//获取更新数据                myAdapter.notifyDataSetChanged();//                handler.sendEmptyMessage(1);            }        });    }        /**     * 获得根据搜索框的数据data来从元数据筛选,筛选出来的数据放入mDataSubs里     *     * @param     * @param data     */    private void getmDataSub(String data) {        int length = mListTitle.length;        for (int i = 0; i < length; ++i) {            if (mListTitle[i].contains(data)) {                Log.e("标题的搜索是",mListTitle[i]);                mData.add(mListTitle[i]);            }        }    } 


最后上例子  点击下载例子

0 0
原创粉丝点击