关闭另一个班级的活动

时间:2012-05-11 23:50:36

标签: java android google-maps

我在创建google-maps应用程序时在Android中遇到了一个问题。

我有一项活动如下

public class MapCallActivity extends MapActivity {
    classA class = new classA(this);
    classA.callMethod();
}

classA的定义如下:

 public class classA{
   public classA(Context context){
   this.myContext = context;
 }

   void callMethod(){
      if (isFileValid) {
        <do_something...>;
      } else {
        <call_the_activity's finish() method>;
      }
   }
 }   

我有办法<call_the_activity's finish() method> MapCallActivity关闭吗?

感谢任何帮助!

3 个答案:

答案 0 :(得分:33)

public class classA{
    public classA(Context context){
        this.myContext = context;
    }

    void callMethod(){
        if(isFileValid){

        }else{
            ((Activity)myContext).finish();
        }
    }
}

答案 1 :(得分:0)

我通常要做的是在活动中使用接收器,然后触发 B类的广播。   A类获得广播,其 onReceive 处理该工作。说 finish();

答案 2 :(得分:0)

这样你就可以从另一个类调用Activity的finish方法。它完美地工作。在 kotlin 代码中使用。

class DialogHelper(applicationContext: Context) {
   
 private var context = applicationContext

    fun showDialog() {
        var dialog: Dialog? = null
        val builder = Dialog.Builder(context)
            .content(R.string.your_string)
            .positiveButton(R.string.str_ok, listener = {
                (context as Activity).finish()
                dialog?.hide()
            })
        dialog = builder.create()
        dialog.setCanceledOnTouchOutside(false)
        dialog.show()
    }
}