供应商给了我一个API,它构造了一个我提供的对象,用于监听硬件按钮按键,如:
interface ButtonListener {
void onButton(String buttonName);
}
interface ButtonApi {
void addListener(ButtonListener);
}
class MyButtonApi implements {
ButtonListener listener;
public void addListener(ButtonListener listener) {
listener = listener;
}
public void whatCallsThisMethod(void) {
listener.onButton("a button");
}
}
构建MyButtonApi
对象后,按下任何硬件按钮都会导致调用侦听器onButton
方法。
所以我遇到的问题是我无法想到一种方法来监听创建对象中的按钮,因为我没有引用Context(或者Activity或Service,基本上没有侦听器之外的对象)。
在这种情况下有没有办法听按钮按下?
我能想到的方式:
onKey
方法 - 不可能,我没有活动我还有其他方法吗?
答案 0 :(得分:0)
因此,只需为您的API类提供上下文:
class MyButtonApi {
public MyButtonApi(Context context, ButtonListener listener);
}
答案 1 :(得分:0)
如果我第三次理解你,你试图通过另一个API(而不是android)获得一些关键的压力; 所以我可以假设下一个方法:
class MyActivity implements ButtonListener {
MyButtonApi api = new MyButtonApi(this);
List<String> buttonEvents = new ArrayList();
@Override
void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
api.whatCallsThisMethod();
}
@Override
void onButton(String buttonName) {
buttonEvents.add(buttonName);
}
}
//So now you have buttons that were pressed, i think you don't need context in this case