如何检查特定视图当前是否集中在Android中

时间:2014-07-15 07:24:17

标签: android view

在我的Android应用程序中 我需要检查特定视图是否集中。 现在我在Activity类中找到了getCurrentFocus()函数 但这会返回一个View对象。

如何比较并检查此返回的View是否与相关的View相同。 我的意思是这里没有getName()函数。 因此,在获取View对象之后,我如何比较以检查哪个View类是这个?

4 个答案:

答案 0 :(得分:2)

View.isFocused()方法告知相关视图是否有重点。

if (myView.isFocused()) {
    // your code
}

如果您仍想使用getCurrentFocus()方法,只需检查:

View focusView = getCurrentFocus();
if (myView == focusView) {
    // your code
}

或者,您可以按ID比较您的观看次数。

View focusView = getCurrentFocus();
if (focusView != null && myView.getId() == focusView.getId()) {
    // your code
}

答案 1 :(得分:0)

我猜你可以使用getId()方法吗?

e.g。

getCurrentFocus() == R.id.myView;

答案 2 :(得分:0)

答案 3 :(得分:-1)

不需要getName()。只需使用==运算符即可。参见:

View myView = findViewById(...);

if (activitygetCurrentFocus() == myView)
    // ha focus

}

我通常更喜欢的另一个选项是为您感兴趣监视的视图设置焦点监听器:

myView.setOnFocusChangeListener(new OnFocusChangeListener() {
    @Override
    public void onFocusChange(View v, boolean hasFocus) {
          if (hasFocus) {
               // got focus logic
          }
    }
});