【Android】運用Builder來創建Alertdialog
阿新 • • 發佈:2017-12-30
pos nco mes inflater width one dial 不用 ica
簡述
直接在activity調用AlertDialog.Builder來創建一個dialog,不用單獨去創建一個類,這個設計我感覺非常友好。考慮到實際安卓app的dialog需要完成的任務也不會太多,所以這個方法應該可以實現90%的需求了,比安 卓官方文檔裏面用正兒八經創建對話框的方法簡便,話不多說,看看這個模式吧。
首先我們需要一個對話框的layout
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="256dp" android:layout_height="141dp" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="92dp" android:gravity="center" android:orientation="vertical"> <TextView android:id="@+id/dialog_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_marginTop="10dp" android:lineSpacingExtra="3dp" android:lineSpacingMultiplier="1.2" android:textColor="#333333" android:textSize="15sp" android:visibility="gone" /> <TextView android:id="@+id/dialog_message" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_marginLeft="15dp" android:layout_marginRight="15dp" android:layout_marginTop="3dp" android:lineSpacingExtra="3dp" android:lineSpacingMultiplier="1.2" android:textColor="#333333" android:textSize="15sp" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="40dp" android:gravity="center" android:orientation="horizontal"> </LinearLayout> </LinearLayout>
用getLayoutInflater().inflate()方法找到在資源文件裏找到layout
LinearLayout layout=(LinearLayout) getLayoutInflater().inflate(R.layout.dialog,null);
順便設置一下文字,R.string.dlg_title
和R.string.dlg_message
是string資源裏自己添加的項
TextView dialogTile=layout.findViewById(R.id.dialog_title); TextView dialogMessage=layout.findViewById(R.id.dialog_message); dialogTile.setText(R.string.dlg_title); dialogMessage.setText(R.string.dlg_message);
是在這裏添加->
建造這個對話框
new AlertDialog.Builder(MainActivity.this).setView(layout) .setPositiveButton("確定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { /* 點擊確定按鈕要做的事 */ } }) .setNegativeButton("取消",null)//因為取消鍵只是關閉,所以不設監聽 .setCancelable(true)//可以點對話框外部關閉對話框 .create() .show();
以上三段代碼都是在activity中直接寫的,不用新建一個類,寫出來也很短,感覺棒棒的。
【Android】運用Builder來創建Alertdialog