打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
android DialogFragment使用 附例子 ? Kavian's Home

 

032012
 

之前一直用Activity中的onCreateDialog方法来创建dialog,现在在弄Android 4.0,API一直提示onCreateDialog"This method is deprecated",推荐使用DialogFragment,去Android 官网网站查了下DialogFragment的使用方法,第一个例子为了介绍style和theme,显得非常复杂,还不知道如何设置title。稍微修改了下第二个"Alert
Dialog"例子,写在这里。

@Override	protected Dialog onCreateDialog(int id) {		// TODO Auto-generated method stub		return super.onCreateDialog(id);	}

上面这个方法 deprecated了。

效果图:

DialogFragmentActivity.java (主Activity)

package com.waitingfy.android;import android.app.Activity;import android.app.Dialog;import android.app.DialogFragment;import android.app.FragmentTransaction;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class DialogFragmentActivity extends Activity {	    /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        Button btnShowDialog = (Button)findViewById(R.id.btnShowDialog);        btnShowDialog.setOnClickListener(new OnClickListener() {					public void onClick(View v) {				showDialog();			}		});    }    void showDialog() {        FragmentTransaction ft = getFragmentManager().beginTransaction();        // Create and show the dialog.        DialogFragment newFragment  = new MyDialogFragment();        Bundle args = new Bundle();        int mStackLevel = 0;        args.putInt("num", mStackLevel);        //传递参数才用到        newFragment.setArguments(args);;        newFragment.show(ft, "dialog");    }}

MyDialogFragment.java (自定义的DialogFragment)

package com.waitingfy.android;import android.app.AlertDialog;import android.app.Dialog;import android.app.DialogFragment;import android.content.DialogInterface;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;public class MyDialogFragment extends DialogFragment {    int mNum;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);    }    @Override    public Dialog onCreateDialog(Bundle savedInstanceState) {    	//可以用下面的方法得到参数//      mNum = getArguments().getInt("num");    	LayoutInflater mInflater = LayoutInflater.from(getActivity());    	View v = mInflater.inflate(R.layout.fragment_dialog,null);        return new AlertDialog.Builder(getActivity())                .setTitle(R.string.what_do_you_like)                .setView(v)                .setPositiveButton(R.string.alert_dialog_ok,                    new DialogInterface.OnClickListener() {                        public void onClick(DialogInterface dialog, int whichButton) {                        //确定按钮do something                        }                    }                )                .setNegativeButton(R.string.alert_dialog_cancel,                    new DialogInterface.OnClickListener() {                        public void onClick(DialogInterface dialog, int whichButton) {                         //取消按钮do something                        }                    }                )                .create();    }}

其他的布局文件和strings文件这里就不列出了。可以下载整个例子后查看。

对比以前的写法,这样好像容易独立出来显示,不过最低的API要求也是11,不能兼容2.3的版本,大概很多地方用不上吧。


 




本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
android中 dialog显示TimePickerDialog
showDialog()、onPrepareDialog()和onCreateDialog()的关系
Android 录音功能直接拿去用
《Android 对话框大全》 方法超简单 - Android新手入门 eoe·Andro...
《Android Dev Guide》系列教程12:用户界面之建立对话框Dialogs
Android AlertDialog 和 ProgressDialog 详解
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服