对话框详解2
来源:互联网 发布:大连外国语大学知乎 编辑:程序博客网 时间:2024/06/07 13:00
本文演示了如何创建一个悬浮对话框,即将activity以对话框的方式显示。
只要指定Activity的主题是dialog即可:
android:theme="@android:style/Theme.Dialog"
对于onTouchEvent方法:1、悬浮对话框(Activity) 单击屏幕上的任意地方都会触发
2、对话框 要想使用对话框的onTouchEvent方法。则必须继承AlertDialog类
本例先进入的是一个悬浮对话框(Activity),单击显示日期后弹出对话框,由于该对话框实现了AlertDialog的onTouchEvent方法,所以单击任意位置,对话框都会消失。
布局文件:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:layout_marginRight="20dp" android:text="这是一个悬浮对话框" /> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_marginTop="20dp" android:gravity="center" android:orientation="horizontal" > <Button android:id="@+id/btnCurrentDate" android:layout_width="80dp" android:layout_height="wrap_content" android:text="当前日期" /> <Button android:id="@+id/btnFinish" android:layout_width="80dp" android:layout_height="wrap_content" android:text="关闭" /> </LinearLayout></LinearLayout>弹出对话框实现onTouchEvent:
public class DateDialog extends AlertDialog{public DateDialog(Context context){super(context);}@Overridepublic boolean onTouchEvent(MotionEvent event){dismiss();return super.onTouchEvent(event);}}
public class Main extends Activity implements android.view.View.OnClickListener {private DateDialog dateDialog;public void onClick(View view) {switch (view.getId()) {case R.id.btnCurrentDate:SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");dateDialog.setIcon(R.drawable.date);dateDialog.setTitle("当前日期:" + simpleDateFormat.format(new Date()));dateDialog.setButton("确定", new OnClickListener() {public void onClick(DialogInterface dialog, int which) {//}});dateDialog.setOnDismissListener(new OnDismissListener() {public void onDismiss(DialogInterface dialog) {new DateDialog.Builder(Main.this).setMessage("您已经关闭的当前对话框.").create().show();}});dateDialog.show();break;case R.id.btnFinish:finish();break;}}@Overridepublic boolean onTouchEvent(MotionEvent event) {finish();return true;}@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);Button btnCurrentDate = (Button) findViewById(R.id.btnCurrentDate);Button btnFinish = (Button) findViewById(R.id.btnFinish);btnCurrentDate.setOnClickListener(this);btnFinish.setOnClickListener(this);dateDialog = new DateDialog(this);}}
- 对话框详解2
- MFC--对话框控制程序详解2
- 网页弹出对话框详解
- windows对话框调用详解,
- 网页弹出对话框 详解
- SWT对话框属性详解
- 对话框详解0
- 对话框详解1
- android 对话框详解
- C#对话框详解
- Android对话框Dialog详解
- Android对话框Dialog详解
- Android对话框详解
- Android--对话框详解
- Android 对话框详解
- Android对话框_详解
- Android对话框Dialog_详解
- Android对话框使用详解
- c++ curl get 访问网页(post关于curl 的文章都有就不介绍了)
- 【iOS】Difference Between objectForKey and valueForKey in NSDictionary
- JAVA那些事
- 一道 i++ ++i 引起的整理
- 实现dos2linux功能-shell脚本篇
- 对话框详解2
- 利用onchang()事件一选中下拉框就提交值
- hdu 1162
- 注意 ExecuteNonQuery() 返回值 问题
- fstream打开文件模式
- 数据结构开篇-基础
- DBCP,C3P0,Proxool,BoneCP参数介绍
- Linux编程基础3 Make自动化编译
- UML类图关系(泛化 、继承、实现、依赖、关联、聚合、组合)