Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android對話框總結

Android對話框總結

編輯:關於Android編程

一、什麼是對話框?
一種次要窗口,包含按鈕和各種選項,通過它們可以完成特定命令或任務。 查找和替換對話框 對話框與窗口有區別,它沒有最大化按鈕、沒有最小化按鈕、大都不能改變形狀大小。(“打開文件”對話框是可以改變大小的) 對話框:是人機交流的一種方式,用戶對對話框進行設置,計算機就會執行相應的命令。對話框中有單選框、復選框等。
要我說,對話框,就是一個用於和用戶進行對話的小框框。大家見到最多的那種是彈出對話框。
二、對話框有什麼用?
對話框不會阻塞主線程,可以和用戶進行簡單交互,且給人一種清新的感覺,好的對話框不僅不會影響用戶體驗,反而會讓用戶喜歡上這種被打擾的感覺。

三、怎麼用?

\ \ \

1、系統對話框
AlertDialog
ProgressDialog
DatePickerDialog
TimePickerDialog
2、自定義對話框
a、使用LayoutInflate和Builder的setView方法實現
b、繼承Dialog類復寫setContentView實現
實例:
activity_main.xml
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:orientation="vertical" >

android:id="@+id/show1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:background="@drawable/button_background"
android:text="dialog1" />

android:id="@+id/show2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:background="@drawable/button_background"
android:text="dialog2" />

android:id="@+id/show3"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:background="@drawable/button_background"
android:text="dialog3" />




activity_dialog.xml
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

android:id="@+id/textView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="標題"
android:textAppearance="?android:attr/textAppearanceLarge" />

android:id="@+id/textView2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="這是一個自定義布局的AlertDialog" />

android:id="@+id/textView3"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="有木有很好玩" />

android:id="@+id/textView4"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="想怎麼布局就怎麼布局"
android:textAppearance="?android:attr/textAppearanceMedium" />

android:id="@+id/button1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/button_background"
android:text="確定" />




MainActivity.java
public class MainActivity extends Activity {
private Button show1, show2, show3;
DatePickerDialog m = null;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
show1 = (Button) findViewById(R.id.show1);
show2 = (Button) findViewById(R.id.show2);
show3 = (Button) findViewById(R.id.show3);
show1.setOnClickListener(mClickListener);
show2.setOnClickListener(mClickListener);
show3.setOnClickListener(mClickListener);
}

private View.OnClickListener mClickListener = new OnClickListener() {

@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
int id = arg0.getId();
switch (id) {
case R.id.show1:
showDialog1();
break;
case R.id.show2:
showDialog2();
break;
case R.id.show3:
showDialog3();
break;
default:
break;
}
}
};

private void showDialog1() {
new AlertDialog.Builder(this).setTitle("dialog 1")
.setMessage("這是最簡單的AlertDialog").setPositiveButton("確定", null)
.setNeutralButton("什麼", null).setNegativeButton("取消", null)
.create().show();
}

private void showDialog2(){
LayoutInflater inflater = LayoutInflater.from(this);
View view = inflater.inflate(R.layout.activity_dialog, null);
final AlertDialog dialog = new AlertDialog.Builder(this).setView(view).create();
Button ok = (Button) view.findViewById(R.id.button1);
ok.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
dialog.dismiss();
}
});
dialog.show();
}

private void showDialog3(){
new MyDialog(this).show();
}

private class MyDialog extends Dialog{

public MyDialog(Context context) {
super(context);
// TODO Auto-generated constructor stub
this.setContentView(R.layout.activity_dialog);
this.setTitle("標題");
Button b = (Button) findViewById(R.id.button1);
b.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
dismiss();
}
});
}
}
}

四、注意總結
注意:
1、不要使對話框泛濫
2、自定義對話框時要注意dismiss()或則不用時remove()
3、還有一種定義對話框的方法,那就是把Activity的主題設置為Theme.Dialog
總結:
在這個看顏的時代,要想成為一個好的程序員,首先要成為一名好的設計師。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved