我正在尝试自定义View.onFocusChangeListener类,如下所示:

private class myCostBoxFocusListener implements View.onFocusChangeListener {

    public void onFocusChanged(boolean focused, int direction, Rect previouslyFocusedRect) {

        //custom stuff here

    }
}


我使用以下方法设置了侦听器:

costBox.setOnFocusChangeListener(new myCostBoxFocusListener());
//costBox is an EditText declared and instantiated earlier.


但是,对于创建类,我得到了编译器错误

"View.onFocusChangeListener cannot be resolved to a type"


并设置监听器

"The method setOnFocusChangeListener(View.OnFocusChangeListener) in the type
View is not applicable for the arguments (OCRMain.myCostBoxFocusListener)"
//OCRMain is the name of the class I'm working in.


我在导入中导入了android.view.View.OnFocusChangeListener,我确实不确定为什么会这样,因为我还为EditText.OnEditorActionListener创建了一个自定义类,没有任何错误。我尝试在View.onFocusChangeListener和EditText.onFocusChangeListener之间更改我的代码,而没有更改。我尝试不做任何更改就清理并重建项目。

任何帮助深表感谢。

最佳答案

答案很简单不是很好吗?感谢Mike M.的帮助;我一直看到对“ OnFocusChanged”的引用,并且坦率地说,我并不完全确定两者之间的区别以及何时/为什么一个与另一个相对合适。如前所述,我也将首个“ o”的大小写错误地小写。但是将其更改为以下内容是可行的:

private class myCostBoxFocusListener implements View.OnFocusChangeListener {

    public void onFocusChange(View v, boolean hasFocus) {

        //stuff

    }
}

08-17 17:18