如何选取弹出框:
地址:Android Activity弹出框、PopupWindow弹出框、Dialog弹出框 - 如何选择
弹出框细节处理:
点击链接: 弹出框好多细节,比如不同版本的弹出框不一样,Toast弹出多次等解决办法。
常用方法一:普通写法
// AlertDialog不能new,没有构造器,但是里面的Builder内部类有new的方法
AlertDialog.Builder builder = new Builder(this);
// 设置图标,使用安卓自带的图标
builder.setIcon(android.R.drawable.alert_dark_frame);
// 设置标题
builder.setTitle("欲练此功必先自宫");
// 设置文本
builder.setMessage("李志平,想清楚哦");
// 设置确定按钮
builder.setPositiveButton("确定", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "感谢使用本软件,再见", 0).show();
}
});
// 设置取消按钮
builder.setNegativeButton("取消", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "若不自宫,一定不成功", 0).show();
}
});
// 使用创建器,生成一个对话框对象
AlertDialog ad = builder.create();
ad.show();
常用方法二:连贯写法
new AlertDialog.Builder(WeiListenRecordingStudioSoundEditActivity.this).setTitle("退出编辑").setMessage("退出编辑将会丢失编辑音乐,重新录音,确认退出?")
.setPositiveButton("离开编辑", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
}
})
.setNegativeButton("继续编辑", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
}
}) .show();
常用方法三:单独写一个类来写dialog
//调用
Message message = Message.obtain(handler);
WeiListenRecordingStudioFileSaveDialog dlog = new WeiListenRecordingStudioFileSaveDialog(this, getResources(),
mTitle, message);
dlog.show();
========
//自定义类
public class WeiListenRecordingStudioFileSaveDialog extends Dialog {
public WeiListenRecordingStudioFileSaveDialog(Context context,
Resources resources,
String originalName,
Message response) {
super(context);
//背景透明处理
getWindow().requestFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN,
WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN);
getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
getWindow().setDimAmount(0f);
// Inflate our UI from its XML layout description.
setContentView(R.layout.wei_listen_recording_studio_file_save);
}}
常用方法四:从底部显式dialog动画
java:
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
AlertDialog dialog = new AlertDialog.Builder(TestAndroid1Activity.this)
.setTitle("title").setMessage("message").create();
Window window = dialog.getWindow();
window.setGravity(Gravity.BOTTOM); //此处可以设置dialog显示的位置
window.setWindowAnimations(R.style.mystyle); //添加动画
dialog.show();
}
});
========
</span>styles.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="mystyle" parent="android:Animation">
<item name="@android:windowEnterAnimation">@anim/dialog_enter</item> //进入时的动画
<item name="@android:windowExitAnimation">@anim/dialog_exit</item> //退出时的动画
</style>
</resources>
========
</span>res/anim/dialog_enter.xml:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromYDelta="100%p" %p指相对于父容器
android:duration="600"
/>
</set>
=========
</span>res/anim/dialog_exit.xml:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:toYDelta="100%p"
android:duration="600" //持续时间
/>
</set>