【问题标题】:Issue with AlertDialog警报对话框问题
【发布时间】:2020-02-25 11:52:04
【问题描述】:

我刚刚在我的 Android 应用程序的片段中实现了一个 AlertDialog,它导致我的应用程序在显示时崩溃。

关于为什么会这样的任何想法?

对话框

void addSiteOption() {

    String[] options = {"Auto", "Manual"};

    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity().getApplicationContext());
    builder.setTitle("Add");
    builder.setMessage("Auto add - download. \n Manually add - no internet connection.");
    builder.setItems(options, new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int selectionIndex) {

            switch (selectionIndex)
            {
                case 0:
                    break;

                case 1:
                    break;
            }
        }
    });
    builder.show();
}

错误:

E/AndroidRuntime: FATAL EXCEPTION: main
android.content.res.Resources$NotFoundException: Resource ID #0x0

【问题讨论】:

  • 你能把你的完整日志贴在这里吗?但我认为问题出在这一行:getActivity().getApplicationContext() 仅尝试对 getActivity()
  • 啊,我确实认为这可能与上下文有关。我会试试getActivity
  • 是的,做到了!谢谢

标签: java android dialog android-alertdialog


【解决方案1】:

你在这里得到Application context,但你需要得到调用activity's context。所以改变你的代码

从这里:

AlertDialog.Builder builder = new AlertDialog.Builder(getActivity().getApplicationContext());

到这里:

AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());

【讨论】:

    【解决方案2】:
    Context=container.getContext();
    
    private void showAlert() {
    
    
                AlertDialog.Builder builder = new AlertDialog.Builder(context);
                builder.setMessage("Are you sure to clear  history?");
                builder.setPositiveButton("sure", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int which) {
    
                    }
                });
                builder.setNegativeButton("cancel", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.dismiss();
                    }
                });
    
                AlertDialog alert = builder.create();
                alert.show();
    
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-17
      • 2023-03-13
      • 2011-07-13
      • 1970-01-01
      • 2012-01-30
      相关资源
      最近更新 更多