一:单击物理返回键弹出退出对话框
需要使用结束程序的进程id或者终止当前程序的虚拟机的方式来实现
android.os.Process.killProcess(android.os.Process.myPid())
关闭当前程序的虚拟机
二:点击弹出关于对话框
android中AlertDialog可以进行自定义,而且方式有很多:
setCustomTitle方法:自定义title的布局形式
setView方法:自定义AlertDialog的布局形式
setIcon方法:设置对话框的图标
三:自定义Dialog评价对话框
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="单击物理返回键弹出退出对话框"
android:textSize="25sp"
/>
</LinearLayout>
package com.ncsyeyy.YeyyAlertDialog;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.KeyEvent;
public class MyActivity extends Activity {
/**
* Called when the activity is first created.
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
// 创建dialog
protected void createDialog(){
// 初始化AlertDialog构建器对象
AlertDialog.Builder builder=new AlertDialog.Builder(MyActivity.this);
// 设置dialog的信息
builder.setMessage("确认退出吗?");
// 设置dialog的标题
builder.setTitle("提示");
// 添加确认和取消按钮
builder.setPositiveButton("确认", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// 如果用户单击确认退出,则对话框消失,程序关闭
dialog.dismiss();
MyActivity.this.finish();\\把当前的Activity从程序的栈中取出来,结束掉,显示程序下面的界面
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// 如果用户单击取消退出,则对话框消失
dialog.dismiss();
}
});
// 创建对话框并显示
builder.create().show();
}
// 在activity中的键盘监听回调事件
public boolean onKeyDown(int keyCode,KeyEvent event){
if (keyCode==KeyEvent.KEYCODE_BACK && event.getRepeatCount()==0){
createDialog();
}
return false;
}
}
需要使用结束程序的进程id或者终止当前程序的虚拟机的方式来实现
android.os.Process.killProcess(android.os.Process.myPid())
关闭当前程序的虚拟机
System.exit(0)
二:点击弹出关于对话框
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:id="@+id/tv"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
android:text="单击弹出关于对话框"
/>
</LinearLayout>
package com.ncsyeyy.YeyyAlertDialogGuanYu;
import android.app.Activity;
import android.app.AlertDialog;
import android.os.Bundle;
import android.view.Gravity;
import android.view.KeyEvent;
import android.view.View;
import android.widget.TextView;
import org.w3c.dom.Text;
public class MyActivity extends Activity {
/**
* Called when the activity is first created.
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView tv = (TextView) findViewById(R.id.tv);
tv.setOnClickListener(myListener);
// createDialog();
}
View.OnClickListener myListener =new View.OnClickListener() {
@Override
public void onClick(View v) {
createDialog();
}
};
protected void createDialog(){
AlertDialog.Builder builder=new AlertDialog.Builder(MyActivity.this);
builder.setMessage("本程序是1.0版本,如有问题请及时提出!");
TextView textView=new TextView(MyActivity.this);
textView.setGravity(android.view.Gravity.CENTER_HORIZONTAL);
textView.setText("关于");
textView.setTextSize(30);
AlertDialog alertDialog=builder.create();
alertDialog.setCustomTitle(textView);
alertDialog.show();
}
//KEYCODE_MENU似乎并没有什么用
// public boolean onKeyDown(int keyCode,KeyEvent event){
// if (keyCode==KeyEvent.KEYCODE_MENU && event.getRepeatCount()==0){
// createDialog();
// }
// return false;
// }
}
android中AlertDialog可以进行自定义,而且方式有很多:
setCustomTitle方法:自定义title的布局形式
setView方法:自定义AlertDialog的布局形式
setIcon方法:设置对话框的图标
三:自定义Dialog评价对话框
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="单击物理返回键弹出评价对话框"
android:textSize="20sp"
/>
<TextView
android:id="@+id/TV"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text=""
android:textSize="20sp"
/>
</LinearLayout>
package com.ncsyeyy.YeyyDialog;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.KeyEvent;
import android.widget.TextView;
public class MyActivity extends Activity {
private TextView tv;
/**
* Called when the activity is first created.
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tv = (TextView) findViewById(R.id.TV);
}
protected void createDialog() {
Dialog dialog = new AlertDialog.Builder(this)
// 设置对话框的标题和图标
.setIcon(android.R.drawable.btn_dialog).setTitle("评价对话框")
// 设置对话框的内容
.setMessage("请您对我的服务进行评价")
// 设置对话框的按钮
.setPositiveButton("很好", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
tv.setText("很好");
}
}).setNegativeButton("一般", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
tv.setText("一般");
}
}).setNeutralButton("有待改进", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
tv.setText("有待改进");
}
}).create();
// 显示对话框
dialog.show();
}
// 在activity中的键盘监听回调事件
public boolean onKeyDown(int keyCode,KeyEvent event){
// 当按下物理键的menu键的时候触发事件
if (keyCode==KeyEvent.KEYCODE_BACK && event.getRepeatCount()==0){
createDialog();
}
return false;
}
}
源码地址:http://download.csdn.net/detail/csdnyuandaimaxuexi/9177633