0
AlertDialogを関数にカプセル化して、私のコードをより読みやすく、混乱させるようにします。しかし、私はどのように私はアンドロイドの関数から結果を返すことができます
int i = ShowMessageBox(MainActivity.this, "Title", "Message");
if (i == 1)
do this
else if (i == 2)
do that
AlertDialogを関数にカプセル化して、私のコードをより読みやすく、混乱させるようにします。しかし、私はどのように私はアンドロイドの関数から結果を返すことができます
int i = ShowMessageBox(MainActivity.this, "Title", "Message");
if (i == 1)
do this
else if (i == 2)
do that
それは非同期であるとして、この機能を使用することができますし、あなたがそのようにそれを維持する必要がありますので、どのように私は結果を返すことができ、結果
public int ShowMessageBox(Context context, String title, String message){
int result;
new AlertDialog.Builder(context)
.setTitle(title.toString())
.setMessage(message.toString())
.setCancelable(false)
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
result = 1; //error here
//dialogInterface.cancel();
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
result = 2; //error here
//dialogInterface.dismiss();
}
})
.show();
return result;
}
に戻すには、この機能を作ることができません。 Interface
を作成してメソッドに渡すことができます。お使いのインタフェースThis'dこと:
public interface MessageBoxListener {
void result(int result);
}
あなたの更新方法:
showMessageBox(MainActivity.this, "Title", "Message", new MessageBoxListener() {
@Override
public void result(int result) {
if (result == 1)
// Do something
else
// Do something else
}
});
ありがとう:
それを使用するには、このような何かをしたいです。これに代わって、最終的なmessageboxListener listenerやMainActivityなど、ほとんど変更を加えずにうまくいきました。 – Angelica