Dialog:手动输入信息

原创 2018年04月16日 11:52:10

模仿"ofo"手动输入自行车ID,界面可能丑了了点,大致功能:

1.如果客户输入的id号超过12位提示用户并且不可以再输入

2.当字符串为空时,”x“消失,客户点击”x“能清空editText里面的内容

3.接口回调editText里面的内容并作相应的操作

.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/popwindow_top"
        android:gravity="center"
        android:orientation="horizontal">

        <TextView
            android:id="@+id/addid_title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="11dp"
            android:layout_marginTop="11dp"
            android:text="添加设备ID"
            android:textColor="@color/blue_deep"
            android:textSize="22sp"
            android:textStyle="bold" />
    </LinearLayout>

    <ImageView style="@style/iv" />

    <RelativeLayout
        android:background="@color/white"
        android:padding="11dp"
        android:layout_width="match_parent"
        android:layout_height="66dp">

        <EditText
            android:id="@+id/addid_et"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@drawable/addid_bg"
            android:ems="12"
            android:gravity="center"
            android:hint="点此输入设备ID"
            android:maxLength="12"
            android:maxLines="1"
            android:textColor="#ff1d1d1d"
            android:textColorHint="#ff666666"
            android:textSize="22sp" />

        <ImageView
            android:id="@+id/addid_iv"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_centerVertical="true"
            android:layout_marginRight="22dp"
            android:background="@drawable/cross"
            android:visibility="gone" />

    </RelativeLayout>

    <ImageView style="@style/iv" />


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <Button
            android:id="@+id/addid_ok"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="@drawable/btn_bottomleft_bg"
            android:text="@android:string/ok"
            android:textColor="@drawable/textcolor"
            android:textSize="22sp" />

        <View
            android:layout_width="1dp"
            android:layout_height="match_parent"
            android:background="@color/gray_shallow" />

        <Button
            android:id="@+id/addid_cancel"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="@drawable/btn_bottomright_bg"
            android:text="@android:string/cancel"
            android:textColor="@drawable/textcolor"
            android:textSize="22sp" />
    </LinearLayout>


</LinearLayout>

.java

public class DialogAddId {
    private Dialog iddialog;
    private EditText id;
    private ImageView iv;

    public DialogAddId(Context context, final putIdListener listener) {
        View view = LayoutInflater.from(context).inflate(R.layout.dialog_id, null);
        id = (EditText) view.findViewById(R.id.addid_et);
        iv = (ImageView) view.findViewById(R.id.addid_iv);
        id.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
//                Logs.d("变化前:" + s + "   " + s.length());
            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
//                Logs.w("变化中:" + s + "   " + s.length());
                if (s.length() == 12) {
                    ToastUtil.showShort("设备ID的长度不能超过12位");
                }
            }

            @Override
            public void afterTextChanged(Editable s) {
                if (s.length() > 0) {
                    iv.setVisibility(View.VISIBLE);
                } else {
                    iv.setVisibility(View.GONE);
                }
//                Logs.e("变化后:" + s + "   " + s.length());
            }
        });
        iv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                id.setText("");
            }
        });
        view.findViewById(R.id.addid_cancel).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                iddialog.dismiss();
            }
        });
        view.findViewById(R.id.addid_ok).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                listener.putId(id.getText().toString());
                iddialog.dismiss();
            }
        });

        DisplayMetrics dm = context.getResources().getDisplayMetrics();// 屏幕宽度
        iddialog = new Dialog(context, R.style.dialog);
        // 设置返回键无效
        iddialog.setCancelable(false);
        iddialog.getWindow().setGravity(Gravity.CENTER_VERTICAL);
        iddialog.setContentView(view, new LinearLayout.LayoutParams(
                dm.widthPixels * 7 / 8,
                LinearLayout.LayoutParams.MATCH_PARENT));
        iddialog.show();
    }

    public interface putIdListener {
        public void putId(String id);
    }


}

调用dialog

 DialogAddId idDialog=new DialogAddId(getActivity(), new DialogAddId.putIdListener() {
                        @Override
                        public void putId(String id) {
                            Logs.v("输入的设备ID为:"+id);
                        }
                    });


效果图





Python-抓取股票信息

-
  • 1970年01月01日 08:00

自定义可以手动自由输入的DataGridviewComboBoxColumn

  • 2014年07月31日 14:33
  • 45KB
  • 下载

dialog(消息框)

dialog(消息框)下载mui.min.js下载mui.min.css//自定义css .mui-plus.mui-android header.mui-bar{ display: non...
  • qq_34523482
  • qq_34523482
  • 2017-06-15 17:36:33
  • 170

设置select 的手动输入功能

html>head> title>Untitledtitle>head>script language="javascript">function   combox(obj,select){  ...
  • fhm727
  • fhm727
  • 2009-09-16 12:23:00
  • 4117

封装好的Dialog,实现的对话框类型多,并且功能强大,直接调用封装好的几个方法就可以实现各种对话框并处理其中的数据

  • 2015年09月06日 15:31
  • 2.51MB
  • 下载

手动输入信息添加echarts节点

1、演示效果 2、详细说明 2.1 index.js引入路由信息 2.1.1 index.js加载ReactDOM import React f...
  • zfan520
  • zfan520
  • 2018-01-05 11:09:39
  • 207

自定义灵活 自动滚动的Dialog

效果图 一般的弹框很少显示列表数据的!这个是显示列表数据的pop弹框,如果显示的数据数超6条,就会自动滚动 喜欢就拿去用,下面直接上源码。 主页面MainActivity文件 import andr...
  • qq_32519693
  • qq_32519693
  • 2017-08-06 20:28:11
  • 468

Android自定义Dialog实现 正在加载

  • 2015年11月04日 19:31
  • 620KB
  • 下载

android登陆Dialog特效

  • 2014年03月27日 17:06
  • 912KB
  • 下载

使用dialog插件弹出提示和确定信息对话框8-8

dialog参数说明:http://www.cnblogs.com/bestfc/archive/2009/06/08/1498742.html
  • kuangfengbuyi
  • kuangfengbuyi
  • 2014-09-03 11:41:00
  • 2789
收藏助手
不良信息举报
您举报文章:Dialog:手动输入信息
举报原因:
原因补充:

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