Android自定义dialog的简单实现方法,以下是完整攻略:
什么是自定义dialog
在Android中,dialog常用于展示特定的信息或者功能。默认的dialog数量有限,若想定制化自定义的dialog,则需要使用自定义dialog。
如何实现自定义dialog
1.使用Dialog类并使用自定义Layout
Dialog类提供了一些可以为我们准备的方法,以便在应用中显示窗口。 它们提供了预构建的用于创建对话框的方法,例如AlertDialog,DatePickerDialog等。
以下是如何实现自定义Dialog:
1.创建布局文件
文件名为custom_dialog.xml,放在res/layout文件夹中:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout_dialog"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="20dp">
<TextView
android:id="@+id/text_dialogTitle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="Dialog Title"
android:textSize="20sp"
android:textStyle="bold" />
<TextView
android:id="@+id/text_dialogMessage"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="Dialog Message" />
<Button
android:id="@+id/btn_dialogOk"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:text="OK" />
</LinearLayout>
2.创建并定义Dialog
定义MainActivity类中的showDialog()方法,以展示自定义dialog:
public void showDialog() {
final Dialog dialog = new Dialog(this);
dialog.setContentView(R.layout.custom_dialog);
dialog.setTitle("Custom Dialog");
TextView textTitle = (TextView) dialog.findViewById(R.id.text_dialogTitle);
textTitle.setText("Custom Dialog");
TextView textMessage = (TextView) dialog.findViewById(R.id.text_dialogMessage);
textMessage.setText("This is a custom dialog example.");
Button btnOK = (Button) dialog.findViewById(R.id.btn_dialogOk);
btnOK.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
}
});
dialog.show();
}
将DialogTitle,DialogMessage和OK按钮的文字内容更改为你所需要的内容。
3.调用Dialog
最后,在MainActivity的onCreate()方法中,调用showDialog()方法:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
showDialog();
}
运行应用程序,将会看到我们自定义的dialog。
2.使用AlertDialog.Builder类
AlertDialog是最常见的对话框类型之一,AlertDialog.Builder类允许我们更改对话框的文本内容,图像和属性。
以下是如何实现自定义AlertDialog:
1.创建布局文件
例如这里我们使用的是一个简单的EditText和Button表单,保存用户输入并再次显示文本序列:
<?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="wrap_content"
android:orientation="vertical"
android:padding="20dp">
<EditText
android:id="@+id/text_input"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Input Text"
android:padding="10dp" />
<Button
android:id="@+id/btn_save"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Save" />
<TextView
android:id="@+id/text_output"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="Inputted Text:"
android:textSize="18sp"
android:textStyle="bold" />
</LinearLayout>
2.创建对话框
在MainActivity中定义showAlertDialog()方法,在该方法中使用AlertDialog.Builder类创建AlertDialog。
public void showAlertDialog() {
// Inflate and set the layout for the dialog
final View dialogView = LayoutInflater.from(this).inflate(R.layout.custom_alertdialog, null);
final EditText editText = (EditText) dialogView.findViewById(R.id.text_input);
final TextView textView = (TextView) dialogView.findViewById(R.id.text_output);
Button btnSave = (Button) dialogView.findViewById(R.id.btn_save);
// Setup the alert dialog builder
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setView(dialogView).setTitle("Custom AlertDialog");
// Set positive button action to save and display user input
final AlertDialog alertDialog = builder.create();
btnSave.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String inputText = editText.getText().toString().trim();
textView.setText("User Input: " + inputText);
editText.setText("");
alertDialog.dismiss();
}
});
// Display the dialog
alertDialog.show();
}
在showAlertDialog()方法中,创建AlertDialog.Builder类的构造函数,并设置对话框的样式。布局文件custom_alertdialog.xml不同于之前的布局文件custom_dialog.xml。
3.调用AlertDialog
在MainActivity的onCreate()方法中使用showAlertDialog()方法来调用AlertDialog:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
showAlertDialog();
}
运行应用程序,将会看到我们自定义的AlertDialog。
以上就是Android自定义dialog的简单实现方法,在使用过程中需要根据具体需求进行布局文件的设计和代码实现。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Android自定义dialog简单实现方法 - Python技术站