在一个类中,我从另一个.java文件中的另一个类调用函数。

这是功能

public void make_a_call(String phonenumber) {
    Intent phone_call = new Intent(android.content.Intent.ACTION_CALL, Uri.parse("tel:"+phonenumber));
    startActivity(phone_call);
}


问题在于该函数由于startActivity要求它是非静态的,但是当我从另一个类调用此函数时,它表示要调用此函数,它必须是静态的。

我怎样才能解决这个问题?

谢谢。

最佳答案

另一个类需要对将用于启动活动的上下文的引用。一种解决方案是将对活动的引用(包含make_a_call的引用)传递给另一类中的代码。另一种可能性(例如,如果另一个类是自定义视图),则它可以使用getContext()获取上下文,然后将make_a_call修改为static,但可以接受上下文作为参数:

public static void make_a_call(Context context, String phonenumber) {
    Intent phone_call = new Intent(android.content.Intent.ACTION_CALL, Uri.parse("tel:"+phonenumber));
    context.startActivity(phone_call);
}

09-10 03:58
查看更多