onTextChanged上的NullPointerException

时间:2012-08-04 06:40:47

标签: android android-edittext custom-component

我正在创建一个富文本编辑器,因此我有一个扩展的EditText,它接收带有子组件的ViewGroup。此ViewGroup是一个工具栏,其中包含用于粗体等的toggleButtons。

EditText以这种方式接收工具栏:

private ViewGroup toolbar;

public CustomEditText(Context context, LinearLayout newToolbar) {
    super(context);
    toolbar = newToolbar;
}

使用此代码,CustomEditText可成功控制工具栏的可见性:

@Override
protected void onFocusChanged(boolean focused, int direction,
        Rect previouslyFocusedRect) {       
    super.onFocusChanged(focused, direction, previouslyFocusedRect);

    if (focused)
        toolbar.setVisibility(View.VISIBLE);
    else
        toolbar.setVisibility(View.GONE);
}

但不幸的是,举例来说,这会返回 NullPointerException

@Override
protected void onTextChanged(CharSequence text, int start,
        int lengthBefore, int lengthAfter) {
    super.onTextChanged(text, start, lengthBefore, lengthAfter);    

    toolbar.setVisibility(View.GONE);
}

我知道可以解决在当前活动中向我的CustomEditText添加TextWatcher的问题,但我试图让CustomEditText处理与之相关的所有内容。

你知道为什么一切都适用于 onFocusChanged ,而不是 onTextChanged

0 个答案:

没有答案