如何使用对话框片段? (showDialog已弃用)Android

前端之家收集整理的这篇文章主要介绍了如何使用对话框片段? (showDialog已弃用)Android前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我知道有这个文件

http://developer.android.com/reference/android/app/DialogFragment.html#AlertDialog

但是作为一个新的Android / Java学习者,通过编写一个简单的警报对话框可以看到2个选项(是/否)消息弹出的代码量并不容易.

以下是我在MainActivity文件中的代码

final private int RESET_DIALOG = 0;

    private OnClickListener resetButtonListener = new OnClickListener() {

        @Override
        public void onClick(View v) {
            showDialog(RESET_DIALOG);

        }
    };

    protected android.app.Dialog onCreateDialog(int id) {
        switch(id) {
        case RESET_DIALOG: 
            AlertDialog.Builder builder = new Builder(this);
            return builder
                    .setMessage("Are you sure you want to reset the count?")
                    .setNegativeButton("No",new DialogInterface.OnClickListener() {    

                        @Override
                        public void onClick(DialogInterface arg0,int arg1) {
                            Toast.makeText(MainActivity.this,"Did not reset!",5).show();

                        }
                    })

                    .setPositiveButton("Yes",new DialogInterface.OnClickListener() {


                        @Override
                        public void onClick(DialogInterface arg0,"Did Reset!",5).show();

                        }
                    })
                    .create();
        }
        return null;
    };

这是我尝试按照Android网站上的说明进行操作:主要活动文件

final private int RESET_DIALOG = 0;

    private OnClickListener resetButtonListener = new OnClickListener() {

        @Override
        public void onClick(View v) {
            Intent intent = new Intent(MainActivity.this,MainDialog.class);
            startActivity(intent);

        }
    };

    protected android.app.Dialog onCreateDialog(int id) {
        switch(id) {
        case RESET_DIALOG: 
            AlertDialog.Builder builder = new Builder(this);
            return builder
                    .setMessage("Are you sure you want to reset the count?")
                    .setNegativeButton("No",5).show();

                        }
                    })
                    .create();
        }
        return null;
    };

然后创建一个MainDialog类:(我实际上失去了如何正确地做这个或应用它)

package com.proteintracker;

import android.support.v4.app.DialogFragment;

public class MainDialog extends DialogFragment {
    public static MyAlertDialogFragment newInstance(int title) {
        MyAlertDialogFragment frag = new MyAlertDialogFragment();
        Bundle args = new Bundle();
        args.putInt("title",title);
        frag.setArguments(args);
        return frag;
    }
}

我不知道我是否假设为片段创建一个新类,以及如何将它应用到活动屏幕中的当前对话框中.

解决方法

您可以像这样显示您的DialogFragment:
void showDialog() {
    DialogFragment newFragment = MyAlertDialogFragment.newInstance(
            R.string.alert_dialog_two_buttons_title);
    newFragment.show(getFragmentManager(),"dialog");
}

在片段对话框中,您应该覆盖onCreateDialog并返回简单对话框的实例,例如AlertDialog.

public static class MyAlertDialogFragment extends DialogFragment {

public static MyAlertDialogFragment newInstance(int title) {
    MyAlertDialogFragment frag = new MyAlertDialogFragment();
    Bundle args = new Bundle();
    args.putInt("title",title);
    frag.setArguments(args);
    return frag;
}

@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
    int title = getArguments().getInt("title");

    AlertDialog.Builder builder = new Builder(this);
    return builder
                .setMessage("Are you sure you want to reset the count?")
                .setNegativeButton("No",new DialogInterface.OnClickListener() {    

                    @Override
                    public void onClick(DialogInterface arg0,int arg1) {
                        Toast.makeText(MainActivity.this,5).show();

                    }
                })

                .setPositiveButton("Yes",new DialogInterface.OnClickListener() {


                    @Override
                    public void onClick(DialogInterface arg0,5).show();

                    }
                })
                .create();
}
}
原文链接:https://www.f2er.com/android/313565.html

猜你在找的Android相关文章