重构android代码的建议

重构android代码的建议,android,refactoring,listener,Android,Refactoring,Listener,我是一名C#程序员,对Android编程相当陌生 对于下面的代码,有没有重构的建议? 监听器内部的许多监听器很难重构 在C#中,async/await可以从HttpClient获取返回值,这样我就可以将json通信与逻辑代码隔离开来 但据我所知,安卓listener需要final关键字才能将结果发送到其范围之外,并且final无法接受http通信后的值(我使用) 请注意,我的应用程序最低要求是API版本8 // A delete button to remove a po

我是一名C#程序员,对Android编程相当陌生

对于下面的代码,有没有重构的建议? 监听器内部的许多监听器很难重构

在C#中,
async/await
可以从
HttpClient
获取返回值,这样我就可以将json通信与逻辑代码隔离开来

但据我所知,安卓
listener
需要
final
关键字才能将结果发送到其范围之外,并且
final
无法接受http通信后的值(我使用)

请注意,我的应用程序最低要求是API版本8

            // A delete button to remove a post.
buttonDelete.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
// Show dialog to ask to delete.
                Dialog.ShowMessageDialog(PostViewActivity.this, getString(R.string.dialogDeletePost), new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
// Async http DELETE send.
        MainActivity.HttpClient.delete(ServerUrl.QUESTION.toString() + "/" + id, new AsyncHttpResponseHandler() {
                            @Override
                            public void onSuccess(String s) {
// when result received, close current activity.
                                super.onSuccess(s);
                                setResult(RESULT_OK);
                                QuestionViewActivity.this.finish();
                            }

                            @Override
                            public void onFailure(Throwable throwable, String s) {
                                super.onFailure(throwable, s);

                            }
                        });
                    }
                });
            }
        });

// show yes-no dialog
public void ShowMessageDialog(Context context, String message, DialogInterface.OnClickListener onYesClickListener){
    new AlertDialog.Builder(context)
            .setMessage(message)
            .setCancelable(false)
            .setPositiveButton(R.string.yes, onYesClickListener)
            .setNegativeButton(R.string.cancel, null)
            .show();
}

有什么问题?解释一下,我想不出你的问题。你想做什么?@MitBhatt//好的,在监听器内部逻辑上平坦化的最佳方法是什么?它混合了视图侦听器、对话框侦听器和http侦听器。或者具体地说,如何将http通信逻辑与上述代码隔离?我想要得到简单的http结果,比如
int-httpResultCode=deletePostAsync(id)。这取决于你。!我认为您已经复制了此代码:)没关系!但是现在想想你的要求。这个“内部监听器逻辑的内部”具有当按钮单击时显示对话框的逻辑,通过它您可以获得httpResultCode。所以,在这里,如果你想删除对话框,那么你只有两个侦听器,如果我从工作中解脱出来,我将为此编写简单的代码,并在这里为你发布。直到你可以按我说的那样尝试为止。@我的问题还没有解决。欢迎提供任何建议:)