1 自定义对话框
传统意义上的自定义对话框,需要创建一个自定义布局,然后定义一个MyDialog类继承至Dialog。在需要Activity与Dialog之间进行信息传递的时候,往往需要通过在MyDialog中定义接口的方式,利用回调机制来实现。
这种方式,比较复杂。
2 使用改造AlertDialog的方式实现自定对话框
自定义对话框的布局文件
<?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">
<TextView
android:text="支付安全"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="40sp"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:text="支付密码:"
android:textSize="30sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<EditText
android:id="@+id/et_recharge_password"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:inputType="numberPassword"/>
</LinearLayout>
<Button
android:id="@+id/btn_ok"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="确定"/>
</LinearLayout>
利用AlertDialog.Builder来构建自定义对话框
final View myDialogView = View.inflate(this,R.layout.recharge_dialog_layout,null);
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("支付安全");
builder.setView(myDialogView );
AlertDialog alertDialog = builder.create();
Button btOK = myDialogView .findViewById(R.id.btn_ok);
btOK.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v1) {
Log.e(TAG, "onClick: " );
EditText editText =myDialogView .findViewById(R.id.et_recharge_password);
String s = editText.getText().toString();
Toast.makeText(ThreeActivity.this, s, Toast.LENGTH_SHORT).show();
}
});
alertDialog.show();