自定义Dialog初识

来源:互联网 发布:淘宝宝贝详情视频制作 编辑:程序博客网 时间:2024/05/20 02:30

写了这么多dialog,这个写完应该没有啥dialog了吧


先封装一个xml(自定义的dialog的样式)

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"              android:orientation="vertical"              android:layout_width="match_parent"              android:layout_height="match_parent">    <TextView        android:id="@+id/tv_customview"        android:text="反馈意见"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        />    <EditText        android:id="@+id/etInput"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        />    <Button        android:id="@+id/btnSeubmit"        android:text="提交"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        /></LinearLayout>

这里写图片描述

原理步骤

  1. 创建builder对象
  2. 引入我们要操作的布局
  3. 获取自定义dialog获取布局中控件
  4. 监听提交按钮点击事件
  5. 创建alertDialog对象
  6. 显示对话框
    布局代码
<?xml version="1.0" encoding="utf-8"?><RelativeLayout    xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:id="@+id/activity_my_dialog"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context="com.axnet.duihuakuangtest.MyDialogActivity">    <Button        android:text="输入姓名"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignParentTop="true"        android:layout_alignParentLeft="true"        android:layout_alignParentStart="true"        android:id="@+id/btnInput"/>    <TextView        android:text="Hello World"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_below="@+id/btnInput"        android:layout_alignParentLeft="true"        android:layout_alignParentStart="true"        android:layout_marginTop="10dp"        android:id="@+id/tvShow"/></RelativeLayout>

项目代码

public class MyDialogActivity extends AppCompatActivity {    private Button btnInput;    private TextView tvShow;    AlertDialog dialog;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_my_dialog);        initView();        btnInput.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                //创建builder对象                AlertDialog.Builder builder=new AlertDialog.Builder(MyDialogActivity.this);                // 引入我们要操作的布局                LayoutInflater layoutInflater=getLayoutInflater();                View  view=layoutInflater.inflate(R.layout.layout_customview,null);                builder.setView(view);                //获取自定义dialog获取布局中控件                final  EditText etInput=(EditText) view.findViewById(R.id.etInput);                Button btnSeubmit=(Button)  view.findViewById(R.id.btnSeubmit);                //监听提交按钮点击事件                btnSeubmit.setOnClickListener(new View.OnClickListener() {                    @Override                    public void onClick(View v) {                        String name=etInput.getText().toString();                        tvShow.setText(name);                        if(dialog!=null){                            dialog.dismiss();                        }                    }                });                //创建alertDialog对象                dialog=builder.create();                //显示对话框                dialog.show();            }        });    }    private void initView() {        btnInput=(Button)findViewById(R.id.btnInput);        tvShow=(TextView)findViewById(R.id.tvShow);    }}

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
当然,这只能满足基本需求,需要其他样式的,我们可以按照自己需求更改

原创粉丝点击