0

私は C# プログラマーで、Android プログラミングの初心者です。

以下のコードの場合、リファクタリングするための推奨事項はありますか? リスナー内の多くのリスナーは、リファクタリングを困難にします。

C# ではasync/await、戻り値を取得できるため、HttpClientjson 通信をロジック コードから分離できます。

しかし、私が知る限り、アンドロイドは結果をスコープ外に送信するためにキーワードをlistener必要とし、http 通信後に値を受け入れることができません (私はloopj httpclientを使用します)。finalfinal

私のアプリの最小要件は 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();
}
4

0 に答える 0