Java 如何在适配器中正确显示自定义对话框

Java 如何在适配器中正确显示自定义对话框,java,android,android-alertdialog,Java,Android,Android Alertdialog,我在我的应用程序中有一个自定义适配器,我从那里启动了几个活动,适配器中的一个填充列表会将您带回登录屏幕,这很好,但我决定在将用户带到登录屏幕之前添加一个确认对话框,但是我得到一个错误,说android.content.ActivityNotFoundException:找不到处理意图{}的活动 这就是我到目前为止所实现的 AccountAdapter.java CustomAlertDialog.java AccountFragment.java,我在其中填充帐户适配器 private void

我在我的应用程序中有一个自定义适配器,我从那里启动了几个活动,适配器中的一个填充列表会将您带回登录屏幕,这很好,但我决定在将用户带到登录屏幕之前添加一个确认对话框,但是我得到一个错误,说android.content.ActivityNotFoundException:找不到处理意图{}的活动

这就是我到目前为止所实现的

AccountAdapter.java

CustomAlertDialog.java

AccountFragment.java,我在其中填充帐户适配器

private void prepareAccountData() {
//        if (mAdapter == null) {
//            return;
//        }
        AccountModel options = new AccountModel("Settings", R.drawable.ic_action_settings);
        accountList.add(options);
        options = new AccountModel("Update Profile", R.drawable.ic_social_person_outline);
        accountList.add(options);
        options = new AccountModel("Change Password", R.drawable.ic_hardware_security);
        accountList.add(options);
        options = new AccountModel("Logout", R.drawable.ic_action_exit_to_app);
        accountList.add(options);
        mAdapter.notifyDataSetChanged();
    }
这是我用于直接注销的代码,它也可以工作

((Activity)mCtx).finish();
                    SharedPreferences sharedPreferences = mCtx.getSharedPreferences("key", Context.MODE_PRIVATE);
                    SharedPreferences.Editor editor = sharedPreferences.edit();
                    editor.clear();
                    editor.apply();
                    intent =  new Intent(mCtx, LoginActivity.class);

如何在我的适配器中实现自定义对话框?

您的代码有错误,您没有初始化意图在显示对话框的情况下,您应该将逻辑移到对话框中的onClick,移动此mCtx.startactivitycontent;进入案例

@Override
public void onClick(View v) {
    switch (getAdapterPosition()){
        case 0:
            mCtx.startActivity(new Intent(mCtx, SettingsActivity.class));
            break;
        case 1:
            mCtx.startActivity(new Intent(mCtx, ProfileActivity.class));
            break;
        case 2:
            mCtx.startActivity(new Intent(mCtx, ChangePasswordActivity.class));
            break;
        default:
            CustomAlertDialog alert = new CustomAlertDialog((Activity)mCtx)
            alert.show();
            break;
    }
}

你能附上坠机日志吗?我没有看到您在对话框中处理的代码是我还没有处理是我对话框,只是想先让对话框工作删除mCtx.startactivitycontent;将阻止其他活动启动最后一个代码是我的问题,我需要将其添加到对话框yes按钮Yeah,应处理在对话框内导航,当用户按Now时关闭错误ok我们可以在聊天室中讨论其他问题请检查聊天室
((Activity)mCtx).finish();
                    SharedPreferences sharedPreferences = mCtx.getSharedPreferences("key", Context.MODE_PRIVATE);
                    SharedPreferences.Editor editor = sharedPreferences.edit();
                    editor.clear();
                    editor.apply();
                    intent =  new Intent(mCtx, LoginActivity.class);
@Override
public void onClick(View v) {
    switch (getAdapterPosition()){
        case 0:
            mCtx.startActivity(new Intent(mCtx, SettingsActivity.class));
            break;
        case 1:
            mCtx.startActivity(new Intent(mCtx, ProfileActivity.class));
            break;
        case 2:
            mCtx.startActivity(new Intent(mCtx, ChangePasswordActivity.class));
            break;
        default:
            CustomAlertDialog alert = new CustomAlertDialog((Activity)mCtx)
            alert.show();
            break;
    }
}