PopuMenu使用实例

/**

*点击editText时,有之前输入的偏好存起来,用于此次显示在popuMenu中

*//1.得到InputMethodManager对象
                InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
                //2.调用hideSoftInputFromWindow方法隐藏软键盘
                imm.hideSoftInputFromWindow(city.getWindowToken(), 0); //强制隐藏键盘

*/

 

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_query_violation);
        sp = context.getSharedPreferences("chePai", Context.MODE_PRIVATE);
        map = (Map<String, String>) sp.getAll();
      

// 车辆号码
        etBusNum = (EditText) findViewById(R.id.editText1_chePaiHaoMa);

        etBusNum.setOnClickListener(this);
    }

public void onClick(View v) {
        switch (v.getId()) {
        case R.id.button1_Save:
            isFirstQuery = true;// 表示非第一次查询
            shengFen=cityTv.getText().toString();
            String content1 = etBusNum.getText().toString();
            if (!shengFen.isEmpty()&&!TextUtils.isEmpty(content1)) {
                SharedPreferenceUtils.putBusData(context, "city", "citys", shengFen);
                String content = content1.trim();
                
                boolean flag = setEditTextBusNum(shengFen,content);
              }
            } else {
                HelperUtils.showToast(context, "车牌号不能为空!");
            }

            break;
        case R.id.editText1_chePaiHaoMa:
            setEditTextBusNumPopuMenu();
            break;

        }

    }

private void setEditTextBusNumPopuMenu() {
        // 查询

        String s1 = "";
        menu = new PopupMenu(QueryViolationActivity.this, etBusNum);
        int j = 0;
        if (map.size() != 0) {
            for (int i = 0; i < map.size(); i++) {
                String str = sp.getString("chePai" + i, "");
                Log.i("tag", "偏好取出的车牌 str=="+str);
                j++;
                Menu m = menu.getMenu();
                m.add(1 + j, 100 + j, 150 + j, str);
                menu.setOnMenuItemClickListener(QueryViolationActivity.this);

            }
        }

        /*
         * Cursor c = daos.query("contents"); String s1=""; menu = new
         * PopupMenu(QueryViolationActivity.this, etBusNum); int j = 0;
         * while(c.moveToNext()){ s1=c.getString(1); j++; Menu m =
         * menu.getMenu(); m.add(1 + j, 100 + j, 150 + j,s1);
         * menu.setOnMenuItemClickListener(QueryViolationActivity.this); }
         */
        menu.show();
        // c.close();
    }

    private boolean setEditTextBusNum(String shengFen,String content) {

        String str = null;
        String a = "a1";

        String strPattern = "[0-9a-zA-Z]{4,}";
        Pattern p = Pattern.compile(strPattern);
        Matcher m = p.matcher(content);

        if (m.matches()) {
            if (!TextUtils.isEmpty(content)&&!TextUtils.isEmpty(shengFen)) {

                for (int i = 0; i < map.size(); i++) {
                    str = sp.getString("chePai" + i, "");
                        Log.i("tag", "sp 车牌:str=="+str);
                    if (str.equals(shengFen+content)) {
                        a = map.remove("chePai" + map.size());
                        // Log.i("tag", "a="+a);

                    }

                }
                if (a != null) {
                    String contents=shengFen+content;
                    SharedPreferenceUtils.putData(context, String.valueOf(map.size()),contents);
                }

            }
            return true;
        } else {
            Toast.makeText(context, "车牌号格式错误!", 1).show();
            return false;
        }

        /*
         * 此方法为数据库存储需要去除重复 if (!TextUtils.isEmpty(content)) { ContentValues
         * values=new ContentValues(); values.put("content", content); long id =
         * daos.insert("contents", values); //daos.exitRepeat(); if(id==-1){
         * Log.i("tag", "id=="+id+","+"插入数据出错了,insert error!"); }else {
         * Log.i("tag", "id=="+id+","+"插入数据成功了。insert ok!"); } }
         */
    }

    @Override
    public boolean onMenuItemClick(MenuItem item) {
        etBusNum.setText("");
        String s = (String) item.getTitle();
        String sfen = s.substring(0,1);
        String num = s.substring(1, s.length());
        etBusNum.setText(num);
        cityTv.setText(sfen);
        return false;
    }

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

转载于:https://my.oschina.net/juna/blog/688548

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值