背景:
無論是Android,還是其他什麼平臺,對話框的主要形式都是彈出,或者我們可以說是一個在當前活動中打開的提示,來執行一些操作或實現一些功能。
你可以用一個對話框來問用戶以確認一個行動,向用戶通告一個事件,或者提示用戶額外信息。因爲對話框擾亂UI流,你應該只是把它們當做最後的手段來用。在大多數情況下,你應該直接整合確認、反饋和提示到你的APP中。
當一個對話框打開,當前活動(通過該活動我們打開了對話框)成爲背景,而對話框成爲前景。在執行對話框中操作並關閉之後,背景中的活動又變回前景。
使用代碼
對話是創建對話框的基礎類。
創建一個帶有如下細節的項目:
ProjectName: CustomDialogBox
PackageName: sat.tuts4mobile.customdialogbox
ActivityName: CustomDialogActivity >
在CustomDialogActivity.java文件複製如下代碼:
package sat.tuts4mobile.customdialogbox;
import android.app.Activity;
import android.app.Dialog;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class CustomDialogActivity extends Activity {
Button buttonDialog;
TextView textDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textDialog = (TextView)findViewById(R.id.textView1);
buttonDialog = (Button)findViewById(R.id.buttondialog);
buttonDialog.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
showCustomDialog(textDialog);
}
});
}
protected void showCustomDialog(final TextView _textDialog) {
// TODO Auto-generated method stub
final Dialog dialog = new Dialog(CustomDialogActivity.this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.customdailog);
final EditText editText = (EditText)dialog.findViewById(R.id.editText1);
Button button = (Button)dialog.findViewById(R.id.button1);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
_textDialog.setText(editText.getText().toString());
dialog.dismiss();
}
});
dialog.show();
}
}
在activity_mail.xml文件中,複製如下代碼:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="10dip"> <Button android:id="@+id/buttondialog" android:layout_width="fill_parent" android:layout_height="40dip" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:text="Click to show dialog" android:background="#336699" android:textSize="25sp" android:textColor="#ffffff"/> <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:text="" android:textSize="25sp"/> </RelativeLayout>
創建新的XML文件命名爲customdialog.xml並複製如下代碼:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="5dip"
android:background="#336699">
<EditText
android:id="@+id/editText1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:ems="10"
android:hint="enter text to display"
android:singleLine="true">
<requestFocus />
</EditText>
<Button
android:id="@+id/button1"
android:layout_width="120dip"
android:layout_height="40dip"
android:layout_below="@+id/editText1"
android:layout_centerHorizontal="true"
android:layout_marginTop="17dp"
android:text="Submit"
android:textSize="25sp"
android:background="#669900" />
</RelativeLayout>
當你運行應用程序的時候,你將看到如下顯示: