美文网首页
andriod 控件封装 可编辑下拉框

andriod 控件封装 可编辑下拉框

作者: 打死也不加班 | 来源:发表于2018-08-14 15:27 被阅读0次

一:可编辑下拉框
android的默认Spinner只能下拉选择内容,而不能选择

二:可编辑下拉框实现方式:
1. 将下拉按钮图标添加到EditText的drawableRight属性中。
2.为按钮图标添加下拉事件,实现下拉框功能
3.将下拉框所选的值填到EditText里面
三:代码:
xml:

<EditText
   android:id="@+id/et"
   android:layout_width="0dp"
   android:layout_height="wrap_content"
   android:layout_weight="3"
   android:ems="10"
   android:drawableRight="@mipmap/down"
 />

java代码:


/**
     * 可下拉的ExitText
     * @param et     ExitText 控件
     * @param lpw     ListPopupWindow lpw = new ListPopupWindow(getContext());
     * @param list   下拉数据
     */
    private void spinnerEditText(final EditText et, final ListPopupWindow lpw, final String[] list) {
        et.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                final int DRAWABLE_LEFT = 0;
                final int DRAWABLE_TOP = 1;
                final int DRAWABLE_RIGHT = 2;
                final int DRAWABLE_BOTTOM = 3;
                // Check if touch point is in the area of the right button
                if (event.getAction() == MotionEvent.ACTION_UP) {
                    if (event.getX() >= (et.getWidth() - et
                            .getCompoundDrawables()[DRAWABLE_RIGHT].getBounds().width())) {
                        lpw.show();
                        return true;
                    }
                }
                return false;
            }
        });

        lpw.setAdapter(new ArrayAdapter<String>(getContext(),
                android.R.layout.simple_list_item_1, list));
        lpw.setAnchorView(et);//设置参照控件
        lpw.setModal(true);//模态框,设置为true响应物理键
        lpw.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                String item = list[position];
                et.setText(item);
                lpw.dismiss();
            }
        });
    }

相关文章

网友评论

      本文标题:andriod 控件封装 可编辑下拉框

      本文链接:https://www.haomeiwen.com/subject/esrvbftx.html