在一个类中,我从另一个类调用另一个.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而非静态,但是当我从另一个类调用这个函数时,它说,要调用它,这个函数需要是静态的。
我该如何解决这个问题?
感谢。
答案 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);
}