【Android學習筆記】自定義AlertDialog對話框
來源:程序員人生 發布時間:2015-02-06 09:23:12 閱讀次數:2993次
(1)布局文件:
<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"
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=".MainActivity" >
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="70dp"
android:layout_marginTop="62dp"
android:text="正告對話框" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/button1"
android:layout_below="@+id/button1"
android:layout_marginTop="64dp"
android:text="多選對話框" />
<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/button2"
android:layout_below="@+id/button2"
android:layout_marginTop="60dp"
android:text="單選對話框" />
</RelativeLayout>
(2)類的文件:
package com.example.alertdialog;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
/**
* 正告對話框的使用
*
* @author piaodangdehun
*
*/
public class MainActivity extends Activity {
private Button button1;// 正告對話框
private Button button2;// 多選對話框
private Button button3;// 單選對話框
private AlertDialog.Builder builder; // 為button1設定的對話框,當有1個對話框的時候可使用全局的定義
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button1 = (Button) this.findViewById(R.id.button1);
button2 = (Button) this.findViewById(R.id.button2);
button3 = (Button) this.findViewById(R.id.button3);
/*
* 1.正告對話框的設定
*/
builder = new AlertDialog.Builder(this);
builder.setTitle("提示框");
builder.setMessage("你肯定要刪除嗎?");
builder.setIcon(R.drawable.ic_launcher); // 設置圖片
/*
* 肯定對話框
*/
builder.setPositiveButton("肯定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "確認刪除", 1).show();
}
});
/*
* 取消對話框
*/
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "取消刪除", 1).show();
}
});
/*
* 疏忽對話框
*/
builder.setNeutralButton("疏忽", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "疏忽刪除", 1).show();
}
});
button1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
builder.show();
}
});
/*
* 2.多選對話框
* 當有多個對話框的時候在具體的時間內不進行聲明定義
*/
button2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
/*
* 對話框的創建
*/
AlertDialog.Builder builder = new AlertDialog.Builder(
MainActivity.this);
builder.setTitle("請選擇愛好");
final String[] hobby = { "上網", "打游戲", "聊天" };
/*
* 選擇的列表
*/
builder.setMultiChoiceItems(hobby, new boolean[] { true, false,
false },
new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which, boolean isChecked) {
if (isChecked) {
Toast.makeText(MainActivity.this,
"-->>" + hobby[which], 1).show();
}
}
});
/*
* 取消按鈕
*/
builder.setPositiveButton("肯定",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
}
});
builder.setNegativeButton("取消",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
}
});
builder.show();
}
});
/*
* 3.單選對話框的設定
*/
button3.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setTitle("XX");
builder.setSingleChoiceItems(new String[]{"上網", "打游戲", "聊天"}, ⑴, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
builder.setPositiveButton("肯定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
builder.show();
}
});
}
/*
* private final View.OnClickListener mylistenerClickListener = new
* OnClickListener() {
*
* @Override public void onClick(View v) { // TODO Auto-generated method
* stub
*
* } };
*/
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
(3)結果展現



生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈