Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android为什么关注第一要素?_Java_Android_Android Activity_Android Edittext_Focus - Fatal编程技术网

Java Android为什么关注第一要素?

Java Android为什么关注第一要素?,java,android,android-activity,android-edittext,focus,Java,Android,Android Activity,Android Edittext,Focus,Android是活动启动时的第一个焦点元素 布局更改时也会发生这种情况 所以,若设备在SoftInputMode为resize时使用EditText,那个么随着布局的改变,设备将失去焦点 但是,不能使用adjustPan,因为它需要resize属性 此外,您不能使用focusable和focusableInTouchMode,因为在布局更改时必须保持焦点 有没有办法指定第一个焦点? 或者,当布局更改时,我可以保持焦点吗?例如,您可以使用requestFocus()方法对要更改的元素设置焦点 f

Android是活动启动时的第一个焦点元素 布局更改时也会发生这种情况

所以,若设备在SoftInputMode为resize时使用EditText,那个么随着布局的改变,设备将失去焦点

但是,不能使用adjustPan,因为它需要resize属性

此外,您不能使用focusable和focusableInTouchMode,因为在布局更改时必须保持焦点

有没有办法指定第一个焦点?
或者,当布局更改时,我可以保持焦点吗?

例如,您可以使用
requestFocus()
方法对要更改的元素设置焦点

 final TextView textView = (TextView) findViewById(R.id.textview);
 textView.requestFocus(); 

我尝试过这种方法,但是我可以指定焦点,但是当布局改变时,我不能通过Android系统任意设置焦点。我无法保持焦点。请解释您到底想做什么,我将尝试解决您的问题。我无法使用EditText,因为当触摸EditText显示键盘时,布局发生更改时,焦点会更改为第一个元素。但是,请在Xml文件android:focusable=“false”中的EditText中添加此行,如果focusable为false,我不能使用EditText。如果您想使用xml进行聚焦,请使用“请避免仅发布代码”答案。请解释为什么这会有帮助。请求焦点用于在edittext框上自动设置键盘功能,以便在活动开始后,它将自动选择定义的请求焦点edittext并打开键盘,以便应用程序用户可以直接将数据插入edittext框。
EditText firsteditText=(EditText)findViewById(R.id.first); 
firsteditText.requestFocus();