-1

我正在尝试实现此功能。在菜单按钮中,有退出功能。我有大约 6 个活动,它们都有这个菜单按钮功能。我创建了一个 ExitDialog 类,然后它可以在所有活动中使用,现在的问题是我不知道该怎么做

public class ExitDialog extends Activity {

    // public ExitDialog(SessionOverview sessionOverview) {
    // // TODO Auto-generated constructor stub
    // }

    // dialog to quit application
    public void dialog() {
        AlertDialog.Builder builder = new Builder(null);
        builder.setMessage(R.string.to_quit);
        builder.setTitle(R.string.hint);
        builder.setPositiveButton(R.string.ok, new okListener());
        builder.setNegativeButton(R.string.cancel, new cancelListener());

        builder.create().show();
    }

    class okListener implements android.content.DialogInterface.OnClickListener {

        @Override
        public void onClick(DialogInterface dialog, int which) {
            dialog.dismiss();
            Intent intent = new Intent(Intent.ACTION_MAIN);
            intent.addCategory(Intent.CATEGORY_HOME);
            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            startActivity(intent);
        }
    }

    class cancelListener implements
            android.content.DialogInterface.OnClickListener {

        @Override
        public void onClick(DialogInterface dialog, int which) {
            dialog.dismiss();
        }

    }
}
4

3 回答 3

0
yourActivity extends ExitDialog;

并使调用类方法为publicprotected

现在在 yourActivity 中使用方法

于 2013-10-10T11:25:15.207 回答
0

首先,你的类真的不需要扩展Activity。相反,将其传递给上下文。

此外,当取消选项应该只是关闭对话框时,您可以null作为 onClick 行为传递,并且关闭对话框将是默认操作。

public class ExitDialog {

    private Context context;
    public ExitDialog(Context context) {
        this.context = context;
    }
    public void dialog() {
        AlertDialog.Builder builder = new Builder(context);
        builder.setMessage(R.string.to_quit);
        builder.setTitle(R.string.hint);
        builder.setPositiveButton(R.string.ok, new okListener());
        builder.setNegativeButton(R.string.cancel, null);
        builder.create().show();
    }

    class okListener implements android.content.DialogInterface.OnClickListener {

        @Override
        public void onClick(DialogInterface dialog, int which) {
            dialog.dismiss();
            Intent intent = new Intent(Intent.ACTION_MAIN);
            intent.addCategory(Intent.CATEGORY_HOME);
            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(intent);
        }
    }
}

在活动中像这样使用它:

new ExitDialog(this).dialog();

于 2013-10-10T13:17:33.133 回答
-1

在你的其他活动中写下:

 ExitDialog dlg = new ExitDialog();
 dlg.dialog;

这将创建一个 ExitDialog 对象。并且通过这个变量(dlg)可以调用对话框方法。

于 2013-10-10T11:25:23.907 回答