Android--创建对话框AlertDialog_移动开发_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > 移动开发 > Android--创建对话框AlertDialog

Android--创建对话框AlertDialog

 2013/12/11 18:09:11  CN.programmer.Luxh  博客园  我要评论(0)
  • 摘要:学习Android过程中发现showDialog()、onCreateDialog()这些方法从Android4.0开始都过时了。官方推荐使用DialogFragment类来创建对话框。1)布局文件dialog_activity.xml<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android
  • 标签:android 创建 对话

  学习Android过程中发现showDialog()、onCreateDialog()这些方法从Android4.0开始都过时了。

  官方推荐使用DialogFragment类来创建对话框。

  1)布局文件dialog_activity.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    
        <Button 
                android:id="@+id/btn_dialog"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/btn_dialog_text"
                android:layout_gravity="center_horizontal"/>
</LinearLayout>

  2)Activity代码

package cn.luxh.dialognew;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.DialogFragment;
import android.content.DialogInterface;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class DialogActivity extends Activity{
    
    private static final String TAG = "DialogActivity";
    
    
    private Button btn_Dialog;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.dialog_activity);
        handleButtonClick();
    }
    
    
    /**
     * 处理按钮事件
     */
    private void handleButtonClick() {
        btn_Dialog = (Button) findViewById(R.id.btn_dialog);
        btn_Dialog.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                AlertDialogFragment alertDialogFragment = AlertDialogFragment.newInstance();
                //显示对话框
                alertDialogFragment.show(getFragmentManager(), "MyDialog");
            }
        });
    }
    
    /**
     * 确定按钮事件处理
     */
    private  void doPositiveClick() {
        Log.d(TAG, "确定按钮事件处理");
        Toast.makeText(this, "确定按钮被点击!", Toast.LENGTH_SHORT).show();
    }
    
    /**
     * 取消按钮事件处理
     */
    private  void doNegativeClick(){
        Log.d(TAG, "取消按钮事件处理");
        Toast.makeText(this, "取消按钮被点击!", Toast.LENGTH_SHORT).show();
    }
    
    /**
     * 生成对话框
     */
    public static class AlertDialogFragment extends DialogFragment{
        
        public static AlertDialogFragment newInstance() {
            return new AlertDialogFragment();
        }
        @Override
        public Dialog onCreateDialog(Bundle savedInstanceState) {
            return new AlertDialog.Builder(getActivity())
                                                .setIcon(R.drawable.ic_launcher)
                                                .setTitle("我的对话窗口")
                                                .setPositiveButton("确定", new DialogInterface.OnClickListener() {
                                                    @Override
                                                    public void onClick(DialogInterface dialog, int which) {
                                                        ((DialogActivity)getActivity()).doPositiveClick();
                                                    }
                                                })
                                                .setNegativeButton("取消", new DialogInterface.OnClickListener() {
                                                    @Override
                                                    public void onClick(DialogInterface dialog, int which) {
                                                        ((DialogActivity)getActivity()).doNegativeClick();
                                                    }
                                                }).create();
        }
    }
}

  3)运行效果

发表评论
用户名: 匿名