1.4 顯示對話框窗口---Dialog

經常會需要顯示對話框窗口,以便從用戶那裏得到確認。這是,可以重寫Activity基類中定義的受保護的onCreateDialog()方法來顯示對話框窗口。


新建一個android項目,將其命名爲Dialog。在mian.xml文件中添加Btton:

<RelativeLayout 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"
    tools:context=".MainActivity" >

    <Button
        android:id="@+id/btn_dialog"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Click to diaplay a dialog" 
        android:onClick="onClick"/>
  
</RelativeLayout>


MainActivity.java:

package com.example.dialogg;


import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.view.View;
import android.widget.Toast;


public class MainActivity extends Activity {
CharSequence[] items={"Google","Apple","Microsoft"};
boolean[] itemsChecked=new boolean[items.length];
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@SuppressWarnings("deprecation")
public void onClick(View v){
showDialog(0);
}

/**要顯示一個對話框首先要實現Activity類中的onCreateDialog()方法
* onCreateDialog()是一個用於創建由活動管理的對話框的回調方法,當調用showDialog()方法時,將回調這個方法。
* showDialog()方法接受一個整型參數,用來表示顯示的對話框。

* */
@SuppressWarnings("deprecation")
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case 0:
//要創建對話框,需要使用AlertDialog類的Builder構造函數來設置不同的屬性,例如:圖標,標題,按鈕
return new AlertDialog.Builder(this)
.setIcon(R.drawable.ic_launcher)
.setTitle("This is a dialog with some simple text...")
//設置ok按鈕
.setPositiveButton("ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(getBaseContext(), "OK clicked!", Toast.LENGTH_SHORT).show();
}
})
//設置取消按鈕
.setNegativeButton("cacle", new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(getBaseContext(), "Cancel chlicked", Toast.LENGTH_SHORT).show();
}
})
//設置複選框列表
/**setMultiChoiceItems()方法需要傳入兩個數組,一個是要顯示的項列表,另一個包含了表明每個項是否被選中的值。*/
.setMultiChoiceItems(items, itemsChecked, new DialogInterface.OnMultiChoiceClickListener() {

@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
Toast.makeText(getBaseContext(), items[which]+(isChecked?" checked!":" unchecked!"), Toast.LENGTH_SHORT).show();

}
}).create();


}
return null;
}
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章