Android View如何获取焦点

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android View如何获取焦点相关的知识,希望对你有一定的参考价值。

android新启动Activity,dialog或者其他窗体中包含EditText, 新启动的activity的焦点默认在EditText上,这时android系统会弹出软键盘,挤压activity本来的界面,影响美观。
因此最好在新窗体创建时,在onCreate()方法中将焦点放在另一个view上。
view使用requestFocus()焦点,但是如果让button或者textView之类控件直接使用requestFocus()方法,则无法获取焦点,焦点会依然在editText上。
只能在使用View的requestFocus()方法之前调用下面2个方法,view才可获取焦点:

    view.setFocusable(true);

    view.setFocusableInTouchMode(true);

  然后调用 view.requestFocus()即可获取焦点。
参考技术A Android 中的view使用requestFocus()焦点具体的方法如下:1.view.setFocusable(true);2.view.setFocusableInTouchMode(true);然后调用 requestFocus()即可获取焦点。Android View如何获取焦点本回答被提问者采纳

android 怎么在代码中判断edittext有没有获取焦点?

edittext 获取焦点时候 提示“获取焦点”
edittext 失去焦点时候提示“失去焦点”

EditText.setOnFocusChangeListener(new View.OnFocusChangeListener()   
      
    @Override  
    public void onFocusChange(View v, boolean hasFocus)   
        if(hasFocus)//获得焦点  
              
        else//失去焦点  
            
          
                 
);
参考技术A 直接添加listener就行了;
editText.setOnFocusChangeListener(new OnFocusChangeListener() 
    @Override
    public void onFocusChange(View v, boolean hasFocus) 
        if (hasFocus) 
            Log.i("test", "获得焦点");
         else 
            Log.i("test", "失去焦点")
        
    
);

以上是关于Android View如何获取焦点的主要内容,如果未能解决你的问题,请参考以下文章

View获取焦点

android 怎么在代码中判断edittext有没有获取焦点?

android输入框获取焦点的同时还要弹出键盘

Android 如何让EditText不自动获取焦点

Android 如何让EditText不自动获取焦点 (转)

android 怎么监听recyclerview是不是获取焦点