Android开发实用小技巧一——自定义编辑对话框

文章目录

  • 前言
  • 一、效果展示
  • 二、代码
    • 1.自定义编辑对话框
    • 2.按钮点击事件
  • 总结


前言

点击某个按钮,在页面中间弹出自定义编辑对话框。


一、效果展示

Android开发实用小技巧一——自定义编辑对话框_第1张图片

二、代码

1.自定义编辑对话框

res/layout/dialog_edit.xml :

<?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:orientation="vertical"
    android:padding="20dp">

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

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="设定目标"
            android:textColor="#FF000000"
            android:textSize="17sp" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:layout_marginBottom="20dp"
            android:text="为自己设定一个小目标吧"
            android:textColor="#FF959595"
            android:textSize="13sp" />

    </LinearLayout>


    <EditText
        android:id="@+id/et_content"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="20dp"
        android:hint="请输入内容"
        android:inputType="text"
        android:padding="10dp"
        android:textSize="17sp" />

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

        <Button
            android:id="@+id/btn_cancel"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="5dp"
            android:layout_marginRight="5dp"
            android:layout_marginBottom="5dp"
            android:layout_weight="1"
            android:background="#FFFFFFFF"
            android:text="取消"
            android:textColor="#FF000000"
            android:textSize="17sp" />

        <Button
            android:id="@+id/btn_save"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="5dp"
            android:layout_marginRight="5dp"
            android:layout_marginBottom="5dp"
            android:layout_weight="1"
            android:background="#FF0080FF"
            android:text="确定"
            android:textColor="#FFFFFFFF"
            android:textSize="17sp" />
    </LinearLayout>

</LinearLayout>

2.按钮点击事件

MainActivity.java :

public class MainActivity extends AppCompatActivity {
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		// 获取控件并添加点击事件
		findViewById(R.id.btn_show_edit_dialog).setOnClickListener(v -> {
			myShowDialog();
		});
	}
	
	// 展示编辑对话框
	private void myShowDialog() {
		AlertDialog.Builder builder = new AlertDialog.Builder(this);
		View view = LayoutInflater.from(this).inflate(R.layout.dialog_edit, null);
		// 获取编辑对话框中的控件
		EditText et_content = view.findViewById(R.id.et_content);
		Button btn_cancel = view.findViewById(R.id.btn_cancel);
		Button btn_save = view.findViewById(R.id.btn_save);
		// 清除对话框原本的内容,并将自定义视图加载进对话框
		Dialog dialog = builder.create();
		dialog.show();
		dialog.getWindow().setContentView(view);
		// 使EditText可以唤起软键盘
		dialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
		// 添加自定义按钮的点击事件
		btn_cancel.setOnClickListener(v -> {
			// 点击取消按钮执行的内容
			dialog.dismiss();
		});
		btn_save.setOnClickListener(v -> {
			// 点击确定按钮执行的内容
			dialog.dismiss();
		});
	}
}

总结

以上就是自定义编辑对话框的内容。

你可能感兴趣的:(Android开发,android,java,android,studio)