11

在创建我的 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

任何帮助表示赞赏!

4

3 回答 3

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

    void callMethod(){
        if(isFileValid){

        }else{
            ((Activity)myContext).finish();
        }
    }
}
于 2012-05-11T23:54:32.587 回答
1

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

于 2018-11-18T02:00:19.633 回答
0

像这样你可以从另一个类中调用 Activity 的完成方法。这是完美的工作。在 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()
    }
}
于 2021-03-18T08:29:02.090 回答