我在创建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
关闭吗?
感谢任何帮助!
答案 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()
}
}