0

在一个类中,我从另一个类中调用一个函数,该类位于另一个 .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,但是当我从另一个类调用这个函数时,它说,要调用它,这个函数需要是静态的。

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

谢谢。

4

1 回答 1

2

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

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);
}
于 2012-07-22T22:40:37.773 回答