0

インターネットで検索しましたが、良いものが見つかりませんでした。

そこで、この問題を解決する方法を見つけようとしました。見つけたのですが、これはあまりにも汚い解決策ですか、使用されているか、危険ですか?

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.os.Bundle;

public class MyActivity extends Activity implements OnClickListener {

   public void onCreate(Bundle b) {
      new AlertDialog.Builder(this)
         .setTitle("Title1")
         .setPositiveBUtton("Ok",this)
         .show();
      new AlertDialog.Builder(this)
         .setTitle("Title2")
         .setPositiveButton("Ok",this)
         .show();
   }

   @Override
   public void onClick(DialogInterface dialog, int id) {
      String dialogTitle = ((AlertDialog)dialog).getActionBar().getTitle().toString();
      if(dialogTitle.equals("Title1")) {
         switch(id) {
            //do smth
         }
      } else if(dialogTitle.equals("Title2")) {
         switch(id) {
            //do smth
         }
      } else {
         //no such dialog
      }
   }
}
4

1 に答える 1

0

それは信じられないほど壊れやすいようです。ダイアログごとに1つずつ、複数のリスナーを使用することをお勧めします。

private DialogInterface.OnClickListener mFirstListener = new DialogInterface.OnClickListener() {
    @Override
    public void onClick (DialogInterface dialog, int which) {
        //Handle first dialog
    }
};

private DialogInterface.OnClickListener mSecondListener = new DialogInterface.OnClickListener() {
    @Override
    public void onClick (DialogInterface dialog, int which) {
        //Handle second dialog
    }
};

次に、ダイアログごとにリスナーを割り当てます。

new AlertDialog.Builder(this)
    .setTitle("First Dialog")
    .setPositiveButton("Ok", mFirstListener)
    .show();
于 2013-06-12T23:41:30.297 に答える