2017-03-04 5 views

答えて

0

それは非同期であるとして、この機能を使用することができますし、あなたがそのようにそれを維持する必要がありますので、どのように私は結果を返すことができ、結果

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 
    } 
}); 
+0

ありがとう:

public void showMessageBox(Context context, String title, String message, final MessageBoxListener listener) { 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) { listener.result(1); //dialogInterface.cancel(); } }) .setNegativeButton("Cancel", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { listener.result(2); //dialogInterface.dismiss(); } }) .show(); } 

それを使用するには、このような何かをしたいです。これに代わって、最終的なmessageboxListener listenerやMainActivityなど、ほとんど変更を加えずにうまくいきました。 – Angelica

関連する問題