Search code examples
androidandroid-alertdialogshowdialogandroid-2.1-eclair

AlertDialog in android 2.1


I create and show my dialog in next way:

showDialog(1); // Logcat say me that mistake is here.
protected Dialog onCreateDialog(int id) {
            switch (id) {
            case 1:{
                Builder builder = new AlertDialog.Builder(this);
                builder.setMessage(R.string.SelectLoc)
                        .setCancelable(true)
                        .setPositiveButton(R.string.Phone, new DialogInterface.OnClickListener() {
                                    public void onClick(DialogInterface dialog,
                                            int which) {
                                        if (mExternalStorageAvailable)
                                        {
                                        PathOpenFile = Environment.getExternalStorageDirectory().getPath();
                                        FileManagerActivity(Settings.Pref.getString("Path_Open", PathOpenFile), REQUEST_LOAD);
                                        }
                                        else 
                                            Toast.makeText(Main.this, R.string.CheckSD , Toast.LENGTH_LONG).show();
                                    }
                                })
                        .setNegativeButton(R.string.Ftp, new DialogInterface.OnClickListener() {
                                    public void onClick(DialogInterface dialog,int which){  
                                    if (Settings.Pref.getBoolean("Ftp_User",false))
                                    {
                                        FtpConnect _FtpConnect = new FtpConnect();
                                        _FtpConnect.Save_Open = FTP_REQUEST_LOAD;
                                        _FtpConnect.execute();
                                    }
                                else 
                                Toast.makeText(Main.this, R.string.SetPass , Toast.LENGTH_LONG).show();
                                    }
                                });
                AlertDialog dialog = builder.create();
                dialog.show();
                break;
                }

In 2.2 It works very well, but in 2.1 it causes force close with -

"java.lang.Illegalargumentexeption: Activity#onCreateDialog did not create a dialog for id 1"

Why so?


Solution

  • If replace

     AlertDialog dialog = builder.create();
        dialog.show();
        break;
    

    on

    return builder.create();
    

    It starts work as expected. Dont know why.