如何在覆盖中使用Context

时间:2013-05-28 05:37:34

标签: android android-context

我正在尝试在我的应用程序中获取UI更改(特别是显示或隐藏的软键盘),为此我使用了自定义列表视图,其中我放了

        protected void onDraw(Canvas canvas) {
    // TODO Auto-generated method stub
    super.onDraw(canvas);
    InputMethodManager im = (InputMethodManager)c
            .getSystemService(Context.INPUT_METHOD_SERVICE);
    if (im.isActive()) {
        Log.d("Redraw Canvas", "Key board is active");
    } else {
        Log.d("Redraw Canvas", "Key board is not active");
    }

}

但它需要上下文,问题是如何在这里使用上下文?

2 个答案:

答案 0 :(得分:1)

onDraw()是View类中的一个方法,每个View都包含对其创建者的Context的引用。所以只需使用:

InputMethodManager im = (InputMethodManager)getContext().getSystemService(Context.INPUT_METHOD_SERVICE);

答案 1 :(得分:0)

使用getContext()getApplicationContext(),可能会有帮助