標籤:layout XML markdown dia size line tco 方法 9.png
簡述
直接在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