模拟搜索功能

原创 2018年04月15日 20:33:36
public class MyView extends LinearLayout {

    private Dao dao;

    private List<String> select;
    private MyViewGroup mvg;
  
    private ListView lv;
    private ArrayAdapter<String> arrayAdapter;

    public MyView(Context context) {
        this(context,null);
    }

    public MyView(Context context, @Nullable AttributeSet attrs) {
        this(context, attrs,0);
    }

    public MyView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        dao = new Dao(getContext());
        initview(context);


        mvg = findViewById(R.id.mvg);
    }

    public interface TitleActivityClickLinsner{
        void onClickleft();

    }

    private TitleActivityClickLinsner titleActivityClickLinsner;

    public void setOnTitleClickLinsner(TitleActivityClickLinsner titleActivityClickLinsner){
        this.titleActivityClickLinsner=titleActivityClickLinsner;
    }





    private void initview(final Context context) {
        View view = View.inflate(context, R.layout.myview, this);
        final EditText et_name = view.findViewById(R.id.et_name);
        TextView sou = view.findViewById(R.id.sou);
        ImageView dele = view.findViewById(R.id.dele);
        lv = view.findViewById(R.id.tv_lv);
        dele.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View view) {
                dao.deleteData();
               // lv.removeAllViews();

               // arrayAdapter.notifyDataSetChanged();
                select = dao.select();
                select.clear();
                arrayAdapter = new ArrayAdapter(getContext(), android.R.layout.simple_list_item_1,select);
                lv.setAdapter(arrayAdapter);
                arrayAdapter.notifyDataSetChanged();
            }
        });
        sou.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View view) {
              /* if (titleActivityClickLinsner!=null){
                    titleActivityClickLinsner.onClickleft();
                }*/
                String name = et_name.getText().toString().trim();
                dao.insertData(name);
                Toast.makeText(context,name,Toast.LENGTH_LONG).show();
                select = dao.select();
               // initChildViews();
                Log.e("zzz","查询的数据为"+select.size());
               // for (int i = 0; i < select.size(); i++) {
                   // String s = select.get(i);
                arrayAdapter = new ArrayAdapter(getContext(), android.R.layout.simple_list_item_1,select);
               /* for (int i = 0; i < select.size(); i++) {
                    lv.setText(select.get(i));
                }*/

                    lv.setAdapter(arrayAdapter);
                    arrayAdapter.notifyDataSetChanged();
               // }

                // 创建adapter适配器对象,装入模糊搜索的结果
             /*   adapter = new SimpleAdapter(this, android.R.layout.simple_list_item_1,s);
                // 设置适配器
                lvSearch.setAdapter(adapter);
                adapter.notifyDataSetChanged();*/
            /* new Thread(){
                 @Override
                 public void run() {
                     ArrayAdapter<String> arrayAdapter = new ArrayAdapter(getContext(), android.R.layout.simple_list_item_1,s);

                 }
             }.start();*/

            }
        });

}

}

public class MainActivity extends AppCompatActivity {
    private String mNames[] = {
            "羊毛衫", "裤子", "碟子",
            "apple8", "瑜伽球", "气垫",
            "欧莱雅", "素颜霜", "防晒霜",
            "连衣裙", "帆布鞋", "大衣",
           };
    private MyViewGroup mvg;
    private MyView ding;
    private MyView zdy_view;
    private Dao dao;
    private TextView lv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        dao = new Dao(this);


        zdy_view = findViewById(R.id.zdy_view);
        mvg = findViewById(R.id.mvg);
    /*   zdy_view.setOnTitleClickLinsner(new MyView.TitleActivityClickLinsner() {
            @Override
            public void onClickleft() {
                List<String> select = dao.select();
                for (int i = 0; i < select.size(); i++) {
                    lv.setText(i);
                }
            }
        });*/
        initChildViews();
    }

    private void initChildViews() {


        ViewGroup.MarginLayoutParams lp = new ViewGroup.MarginLayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
        lp.leftMargin = 5;
        lp.rightMargin = 5;
        lp.topMargin = 5;
        lp.bottomMargin = 5;
        for (int i = 0; i < mNames.length; i++) {
            TextView view = new TextView(this);
            view.setText(mNames[i]);
            view.setTextColor(Color.WHITE);
            view.setBackgroundColor(Color.GRAY);
            // view.setWidth(120);
            view.setPadding(15, 3, 15, 4);
            //view.setBackgroundDrawable(getResources().getDrawable(R.drawable.textview_bg));
            mvg.addView(view, lp);
        }

    }
}

最后数据库dao类

public class Dao {

    private final SQLiteDatabase db;

    public Dao(Context context) {
        MyHelper helper = new MyHelper(context);
        db = helper.getWritableDatabase();
    }

    /*插入数据*/
    public void insertData(String tempName) {
        ContentValues values = new ContentValues();
        values.put("name",tempName);
        long records = db.insert("records", null, values);
        Log.e("zzz","插入了"+records);
       /* db.execSQL("insert into records(name) values('" + tempName + "')");
        db.close();*/
    }

    public List<String> select(){
        List<String> list = new ArrayList<>();
        Log.e("zzz","查询了数据库");
        String name="";
        Cursor cursor = db.query("records", null, null,null, null, null, null);
        while (cursor.moveToNext()){
             name = cursor.getString(cursor.getColumnIndex("name"));
            list.add(name);
        }



        return list;
    }

    public void deleteData() {

        db.delete("records",null,null);
    }


}



js模拟浏览器Ctrl+F 搜索高亮

js模拟浏览器Ctrl+F 搜索页面内容,并高亮显示.
  • Loving_M
  • Loving_M
  • 2017年09月18日 19:12
  • 1031

PHP实现类似百度搜索自动完成(代码简单)

一 效果图:二 HTML代码:&lt;html lang="en"&gt; &lt;head&gt; &lt;meta charse...
  • m_nanle_xiaobudiu
  • m_nanle_xiaobudiu
  • 2018年02月21日 17:21
  • 150

模仿百度搜索的自动提示功能 高大上

.autoComplete {margin:8px;position:relative;float:left;} .autoComplete input {width:200px;height:25...
  • u010317990
  • u010317990
  • 2014年07月24日 16:45
  • 865

浏览器+js实现超强的搜索访问功能

javascript: (function() { var txt = document.getSelection(); var txt0 = txt.replace(/\s+/g, ...
  • wangjieest
  • wangjieest
  • 2012年03月12日 14:43
  • 2045

模拟浏览器的查找功能(Ctrl+F),同时兼容IE和Chrome

通常在做前端Web界面时,经常需要用js模拟浏览器的查找功能。下面介绍下IE和Chrome浏览器中如何用js模拟该功能。 一、IE浏览器 在IE浏览器中我们需要用到TextRange对象,该对象主要...
  • zheng12tian
  • zheng12tian
  • 2014年10月30日 11:36
  • 2872

Python模拟百度自动输入搜索功能

# 访问百度,模拟自动输入搜索# 代码中引入selenium版本为:3.4.3 # 通过Chrom浏览器访问发起请求 # Chrom版本:59 ,chromdriver:2.3 # 需要对应版本的Ch...
  • qq_878799579
  • qq_878799579
  • 2017年06月16日 08:19
  • 22470

模拟select样式+功能,兼容IE9+

效果:代码:用了rem作单位,jquery.js&lt;!doctype html&gt; &lt;html&gt; &lt;meta charset=&quo...
  • liona_koukou
  • liona_koukou
  • 2018年03月21日 09:41
  • 88

易生活(七)-APP--搜索业务逻辑处理

概述 易生活的搜索业务主要是为了完成用户对商品、商家的搜索。搜索途径主要包括包括:语音识别搜索、文字搜索、历史搜索组成。使用到的第三方技术主要包括:科大讯飞的语音识别系统、哈工大的中文分词系统等。搜索...
  • wgyscsf
  • wgyscsf
  • 2016年06月18日 16:31
  • 1517

浅谈asp.net通过本机cookie仿百度(google)实现搜索input框自动弹出搜索提示

对于通过用户输入关键词实现自动弹出相关搜索结果,这里本人给两种解决方案,用于两种不同的情形。 常见方法是在数据库里建一个用户搜索关系表,然后通过用户搜索框输入的关键字异步调用数据表中的相关数据,显示在...
  • jintougao
  • jintougao
  • 2014年07月09日 16:32
  • 2025

【爬虫初探】新浪微博搜索爬虫实现

全文概述功能:爬取新浪微博的搜索结果,支持高级搜索中对搜索时间的限定 网址:http://s.weibo.com/ 实现:采取selenium测试工具,模拟微博登录,结合PhantomJS/Fir...
  • destinyuan
  • destinyuan
  • 2016年05月02日 18:21
  • 5511
收藏助手
不良信息举报
您举报文章:模拟搜索功能
举报原因:
原因补充:

(最多只允许输入30个字)