本文實例講述了Android編程自定義Dialog的方法。分享給大家供大家參考,具體如下:
功能:
android 提供給我們的只有2種Dialog 即 AlertDialog & ProgressDialog 但是 Dialog 有其自身的特點:1. 不是 Activity 2. 開銷比 Activity 小得多
鑒于以上的優(yōu)點 我們就有定制自己Dialog 的需求

原理:
1. android 系統(tǒng)提供了一個class: Dialog. 而且你可以把自己的工作放在"protected void onCreate(Bundle savedInstanceState)" 在里面先調(diào)用系統(tǒng)的"super.onCreate(savedInstanceState)" 其就會保證調(diào)用這個method.
2. 至于 Dialog 界面的定制 可以寫一個xml 文件 然后 在 "void onCreate(Bundle)" 通過 "setContentView()" 來使之生效
3. Dialog 使用問題: 1. 彈出:show() 2. 取消:dismiss()
代碼:
1. 創(chuàng)建一個 Dialog:
public class CustomDialog extends Dialog {  public CustomDialog(Context context) {    super(context);    // TODO Auto-generated constructor stub  }  protected void onCreate(Bundle savedInstanceState){    super.onCreate(savedInstanceState);    setContentView(R.layout.custom_dialog);    setTitle("Custom Dialog");    TextView text = (TextView)findViewById(R.id.text);    text.setText("Hello, this is a custom dialog!");    ImageView image = (ImageView)findViewById(R.id.image);    image.setImageResource(R.drawable.sepurple);    Button buttonYes = (Button) findViewById(R.id.button_yes);    buttonYes.setHeight(5);    buttonYes.setOnClickListener(new Button.OnClickListener(){      public void onClick(View v) {        // TODO Auto-generated method stub        dismiss();      }    });    Button buttonNo = (Button) findViewById(R.id.button_no);    buttonNo.setSingleLine(true);    buttonNo.setOnClickListener(new Button.OnClickListener(){      public void onClick(View v) {        // TODO Auto-generated method stub        dismiss();      }    });  }  //called when this dialog is dismissed  protected void onStop() {    Log.d("TAG","+++++++++++++++++++++++++++");  }}2. Dialog 的使用:
public class CustomDialogUsage extends Activity {  CustomDialog cd;  /** Called when the activity is first created. */  @Override  public void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.main);    cd = new CustomDialog(this);    Button buttonYes = (Button) findViewById(R.id.main_button);    buttonYes.setOnClickListener(new OnClickListener(){      public void onClick(View v) {        // TODO Auto-generated method stub        cd.show();      }    });  }}3. Dialog 的界面定制:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/layout_root" android:orientation="horizontal"android:layout_width="fill_parent" android:layout_height="fill_parent"android:padding="10dp"> <ImageView android:id="@+id/image" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_marginRight="10dp" /> <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content" android:padding="5px"> <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="fill_parent" android:textColor="#FFF" /> <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:padding="5px"> <Button android:id="@+id/button_yes" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text=" Yes " android:gravity="center" /> <Button android:id="@+id/button_no" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text=" No " android:gravity="center" /> </LinearLayout> </LinearLayout></LinearLayout>
更多關于Android相關內(nèi)容感興趣的讀者可查看本站專題:《Android開發(fā)入門與進階教程》、《Android調(diào)試技巧與常見問題解決方法匯總》、《Android多媒體操作技巧匯總(音頻,視頻,錄音等)》、《Android基本組件用法總結(jié)》、《Android視圖View技巧總結(jié)》、《Android布局layout技巧總結(jié)》及《Android控件用法總結(jié)》
希望本文所述對大家Android程序設計有所幫助。
新聞熱點
疑難解答