Android中的對話方塊(AlertDialog)
阿新 • • 發佈:2018-11-02
建立android中分體式對話方塊需要四個步驟:
第一:獲得AlertDialog的靜態內部類Builder物件,有該類建立對話方塊。
第二:通過Builder物件設定對話方塊的標題,按鈕UI及將要響應的事件。、
第三:呼叫Builder的Create()方法建立對對話方塊
第四:呼叫BUILDER的show()方法顯示對話方塊。
MainActivity.java public class MainActivity extends Activity { // 宣告元件 private TextView tv; private Button btn; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 根據Id獲取元件 tv = (TextView) findViewById(R.id.tv); btn = (Button) findViewById(R.id.btn); // 在按鈕上註冊監聽器 btn.setOnClickListener(new OnClickListener() { // 獲得Builder物件 AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); public void onClick(View v) { // 通過builder物件設定對話方塊資訊 builder.setMessage("真的要刪除該記錄嗎?") // 設定確定按鈕及其相應事件處理 .setPositiveButton("是",new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { tv.setText("刪除成功!"+which); } }) // 設定取消按鈕及其相應事件處理 .setNegativeButton("否",new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog,int which) { tv.append("取消刪除?"+which); } }); //含第3個按鈕的 builder.setNeutralButton("忽略", new DialogInterface.OnClickListener(){ public void onClick(DialogInterface dialog, int which) { setTitle("點選了對話方塊的忽略按鈕"+which); } }); // 建立對話方塊 AlertDialog ad = builder.create(); // 顯示對話方塊 ad.show(); } }); } }
avtivity.main <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="edu.qau.ch03_4_dialog.AlertDialog" > <TextView android:id="@+id/tv" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <Button android:id="@+id/btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/delete" /> </LinearLayout>