android - 静态方法问题

时间:2012-07-22 22:35:38

标签: java android static

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

我该如何解决这个问题?

感谢。

1 个答案:

答案 0 :(得分:2)

另一个类需要引用将用于启动活动的上下文。一种解决方案是将对活动的引用(包含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);
}