一个自定义的修改用户名的dialog

来源:互联网 发布:淘宝防狼神器 编辑:程序博客网 时间:2024/06/08 01:09

1.布局文件

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:background="@drawable/rectangle_with_corners_shape1"android:gravity="center"    android:orientation="vertical" >        <TextView         android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="编辑姓名"        android:paddingTop="20dp"        android:paddingBottom="20dp"        android:textSize="20dp"        android:textStyle="normal"        />       <LinearLayout         android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:orientation="horizontal"        android:layout_marginLeft="16dp"        android:layout_marginRight="16dp"        android:background="@drawable/rectangle_with_corners_shape1"        android:gravity="center_vertical"        >    <EditText         android:id="@+id/et_change_name"         android:layout_width="wrap_content"         android:layout_height="40dp"         android:singleLine="true"         android:layout_marginLeft="10dp"         android:layout_marginRight="10dp"         android:background="@null"         android:hint="@string/regist_name_hint" >     </EditText>                <ImageView        android:id="@+id/iv_delete"         android:layout_width="20dp"        android:layout_height="20dp"        android:layout_marginRight="10dp"        android:background="@drawable/edittext_delete_textview"        />    </LinearLayout>    <LinearLayout         android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:orientation="horizontal"        android:paddingBottom="20dp"        android:paddingTop="20dp"        android:gravity="center_horizontal"        >        <Button            android:id="@+id/btn_change_name_cancle"             android:layout_width="80dp"            android:layout_height="34dp"            android:text="取消"            android:textSize="16dp"            android:background="@drawable/rectangle_with_corners_shape1"            />        <Button              android:id="@+id/btn_change_name_confirm"             android:layout_width="80dp"            android:layout_height="34dp"            android:layout_marginLeft="20dp"            android:text="确定"             android:textSize="16dp"            android:background="@drawable/rectangle_with_corners_shape1"            />    </LinearLayout></LinearLayout>


其中用到的背景形状shape:

<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android"    android:shape="rectangle" >    <!-- 填充颜色 -->    <solid android:color="#FFFFFF" />    <!-- 矩形的圆角半径 -->    <corners        android:bottomLeftRadius="10dp"        android:bottomRightRadius="10dp"        android:topLeftRadius="10dp"        android:topRightRadius="10dp" />    <!-- 线的宽度,颜色灰色 -->    <stroke        android:width="1dp"        android:color="#ccc" >    </stroke></shape>

效果:


2.自定义的dialog,并给相应的控件设置监听

public class ChangeNameDialog extends Dialog {private ImageView iv_delete;    private EditText et_change_name;    private Button btn_change_name_cancle;    private Button btn_change_name_confirm;    public ChangeNameDialog(Context context) {super(context,R.style.change_name_dialog);View view = View.inflate(context, R.layout.change_name_dialog, null);iv_delete = (ImageView) view.findViewById(R.id.iv_delete);et_change_name = (EditText) view.findViewById(R.id.et_change_name);btn_change_name_cancle = (Button) view.findViewById(R.id.btn_change_name_cancle);btn_change_name_confirm = (Button) view.findViewById(R.id.btn_change_name_confirm);setContentView(view);setCancelable(false);    }    public EditText getEditText() {return et_change_name;}        /**      * 确定键监听器      */      public void setOnPositiveListener(View.OnClickListener listener){      btn_change_name_confirm.setOnClickListener(listener);    }      /**      * 取消键监听器      */      public void setOnNegativeListener(View.OnClickListener listener){      btn_change_name_cancle.setOnClickListener(listener);      }    /**      * 删除键监听器      */      public void setOnDelete(View.OnClickListener listener) {iv_delete.setOnClickListener(listener);}    }

3.在页面的使用

<pre name="code" class="java"><span style="white-space:pre"></span>ChangeNameDialog  <span style="font-family: Arial, Helvetica, sans-serif;">changeNameDialog = new ChangeNameDialog(context);</span>
changeNameDialog.show();final EditText editText = changeNameDialog.getEditText();String oldName = DataUtil.getMemberByMemberIdCurr(BaseApplication.getInstance().getParam(Params.MEMBER_ID, 0)).getName();editText.setText(oldName);editText.setSelection(oldName.length());changeNameDialog.setOnPositiveListener(new OnClickListener() {@Overridepublic void onClick(View v) {newName = editText.getText().toString().trim();//必须在按钮点击事件中获取输入框中的数据,否则拿不到的。if (Util.isEmpty(newName)) {ToastUtil.showToast(context, "请输入姓名");}else {//上传名字BaseApplication.getInstance().getMemberMessageManager().changeName(newName);changeNameDialog.dismiss();editText.setText("");}}});changeNameDialog.setOnNegativeListener(new OnClickListener() {@Overridepublic void onClick(View v) {changeNameDialog.dismiss();editText.setText("");}});changeNameDialog.setOnDelete(new OnClickListener() {@Overridepublic void onClick(View v) {editText.setText("");}});




0 0
原创粉丝点击