0

Activity通常の Java クラスから のメソッドを呼び出すことはできますか?

これは、アクティビティのメソッドです。

public void showMessage(String mensaje) {
   AlertDialog.Builder builder = new AlertDialog.Builder(this);
   builder.setMessage("Are you sure you want to exit?")
          .setCancelable(false)
          .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
              public void onClick(DialogInterface dialog, int id) {
                   dialog.cancel();
              }
          })
          .setNegativeButton("No", new DialogInterface.OnClickListener() {
              public void onClick(DialogInterface dialog, int id) {
                   dialog.cancel();
              }
          });
   AlertDialog alert = builder.create();
   alert.show();

これは、外部 (単純な Java) クラスのコードのメソッドです。

public void write(String importanChange) {
    Context context = //Here I dont know what to do here (It's my question,
                  //but I tried other aproaches but all failed                     
    ((MyActivity)mContext).showMessage(message);

その理由は、シミュレーション (Android アプリケーション) で変更を検出するフレームワークがあり、後でこのシミュレーションがこのフレームワークの変更に通知し、変更が重要かどうかを判断するためです。

したがって、変更が重要な場合、フレームワークはアクティビティで showMessage メソッドを実行する必要があります。

4

4 に答える 4

0

これを試して、

例:

Activity Class:


      public class MyActivity extends Activity {

                    onCreate(.....){

               }

         public void go(){

         //Some code

     }



Java External Class in the same package:


public class MyDemo {

     MyActivity ac;
                   public MyDemo(MyActivity ac) {


                           this.ac = ac;
                     }

                 public void foo() {

                          ac.go();    // Access the activity's method
                   }

     }
于 2012-05-21T18:53:54.113 に答える
0

メソッドを次のように定義する必要がありpublic static void write(String importantChange)ますpublic void write(String importantChange)

メソッドを「静的」にするということは、このメソッドを使用するためにメソッドを含むクラスをインスタンス化する必要がないことを意味します。

編集:あなたの「編集」を見ました。したがって、メソッドで Context を使用するには、次のようにメソッドの引数としてコンテキストを渡すことをお勧めします。public void write(String importantChange, Context context)

于 2012-05-21T15:45:42.437 に答える
0

を必要とAlertDialogしないためContext、ユーティリティ メソッドの作成を選択できます。

public static void showMessage(String message) {
    ...
}

public void write(String importanChange) {
    MyActivity.showMessage(msg);
    ...
}
于 2012-05-21T16:11:30.693 に答える