Android EditText 没有聚焦
Android EditText not focusing
这是我的问题,我有一个非常简单的布局,显示 2 个 EditText,一个用于标题,另一个用于描述。这是 xml 文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="1">
<EditText
android:layout_width="match_parent"
android:layout_height="63dp"
android:id="@+id/title_field"
android:background="#ffffffff"
android:hint="@string/titleFieldHint"
android:padding="20dp"
android:textSize="8.5pt"
android:maxLines="1"/>
<View
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="@android:color/darker_gray"/>
<EditText
android:layout_width="match_parent"
android:layout_height="0dp"
android:id="@+id/description_field"
android:hint="@string/descriptionHint"
android:gravity="top"
android:padding="20dp"
android:scrollbars="vertical"
android:textSize="8.5pt"
android:background="#ffffff"
android:inputType="textMultiLine"
android:textIsSelectable="true"
android:focusableInTouchMode="true" android:layout_weight="1"/>
</LinearLayout>
当我使用此布局启动 activity 时,键盘显示焦点 title_field,因此我可以编写并单击其他字段(键盘仍处于打开状态)并编写说明。但是,如果我隐藏键盘它不会再次出现(键盘),除非我点击 title_field,所以 description_field 没有响应,此外 title_field 支持 selection开箱即用(包括上下文操作栏),而 description_field 甚至 select.
都不会让我
我才刚刚开始 android 开发,有什么我遗漏的吗?
取出android:textIsSelectable="true"
.
或
编辑:
如果您需要能够保留文本以用作新编辑文本的一部分:
将 android:hint 更改为 andoid:text 以便能够通过键盘使用文本。但是,如果键盘关闭,它仍然需要返回到第一个编辑文本,然后它将保持打开状态以进行第二个编辑文本。
我会为两个编辑文本框使用高度作为 "wrap_content"。
<EditText
...
android:text="descriptionHint"
android:focusableInTouchMode="true"
android:textIsSelectable="true"
android:layout_weight="1"/>
如果您想在特定 activity 开始时使用键盘,例如搜索 activity,请在您的清单中使用此代码 -
注意 - 一旦用户登陆 activity...
,它就会弹出键盘
<application ... >
<activity
android:windowSoftInputMode="stateVisible" ... >
...
</activity>
...
您也可以在 java 文件中执行此操作。使用 Java,您可以更好地控制键盘外观。这是它的代码 -
public void showSoftKeyboard(View view) {
if (view.requestFocus()) {
InputMethodManager imm = (InputMethodManager)
getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(view, InputMethodManager.SHOW_IMPLICIT);
}
}
调用方法showSoftKeyboard()弹出键盘!!
希望对你有帮助!!
干杯!
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/startJourneyLinearLayout"
android:layout_below="@+id/startJourneyLinearLayout"
android:layout_marginLeft="65dp"
android:layout_marginTop="28dp"
android:ems="10" >
<requestFocus />
</EditText>
好吧,要聚焦编辑文本,您可以使用代码
private void requestFocus(View view) {
if (view.requestFocus()) {
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
}
}
//Function Call
requestFocus(yourEditetxt);
我在使用 EditText 时遇到了同样的问题,我查看了很多博客以找出这个错误的解决方案,但没有找到解决方案。
然后检查我将全屏行作为默认主题(AppTheme)的主题部分
style name="AppTheme" parent="@android:style/Theme.Holo.Light.NoActionBar.Fullscreen"
这导致在屏幕上加载软键盘时出现问题。
我只是尝试上面的代码,它只是打开软键盘不工作,我输入的内容没有显示在 EditText 中。
我只是将主题从默认更改为这个,它工作正常。
style name="PhoneActivityTheme" parent="Theme.AppCompat.DayNight"
这是我的问题,我有一个非常简单的布局,显示 2 个 EditText,一个用于标题,另一个用于描述。这是 xml 文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="1">
<EditText
android:layout_width="match_parent"
android:layout_height="63dp"
android:id="@+id/title_field"
android:background="#ffffffff"
android:hint="@string/titleFieldHint"
android:padding="20dp"
android:textSize="8.5pt"
android:maxLines="1"/>
<View
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="@android:color/darker_gray"/>
<EditText
android:layout_width="match_parent"
android:layout_height="0dp"
android:id="@+id/description_field"
android:hint="@string/descriptionHint"
android:gravity="top"
android:padding="20dp"
android:scrollbars="vertical"
android:textSize="8.5pt"
android:background="#ffffff"
android:inputType="textMultiLine"
android:textIsSelectable="true"
android:focusableInTouchMode="true" android:layout_weight="1"/>
</LinearLayout>
当我使用此布局启动 activity 时,键盘显示焦点 title_field,因此我可以编写并单击其他字段(键盘仍处于打开状态)并编写说明。但是,如果我隐藏键盘它不会再次出现(键盘),除非我点击 title_field,所以 description_field 没有响应,此外 title_field 支持 selection开箱即用(包括上下文操作栏),而 description_field 甚至 select.
都不会让我我才刚刚开始 android 开发,有什么我遗漏的吗?
取出android:textIsSelectable="true"
.
或
编辑:
如果您需要能够保留文本以用作新编辑文本的一部分:
将 android:hint 更改为 andoid:text 以便能够通过键盘使用文本。但是,如果键盘关闭,它仍然需要返回到第一个编辑文本,然后它将保持打开状态以进行第二个编辑文本。
我会为两个编辑文本框使用高度作为 "wrap_content"。
<EditText
...
android:text="descriptionHint"
android:focusableInTouchMode="true"
android:textIsSelectable="true"
android:layout_weight="1"/>
如果您想在特定 activity 开始时使用键盘,例如搜索 activity,请在您的清单中使用此代码 -
注意 - 一旦用户登陆 activity...
,它就会弹出键盘<application ... >
<activity
android:windowSoftInputMode="stateVisible" ... >
...
</activity>
...
您也可以在 java 文件中执行此操作。使用 Java,您可以更好地控制键盘外观。这是它的代码 -
public void showSoftKeyboard(View view) {
if (view.requestFocus()) {
InputMethodManager imm = (InputMethodManager)
getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(view, InputMethodManager.SHOW_IMPLICIT);
}
}
调用方法showSoftKeyboard()弹出键盘!!
希望对你有帮助!! 干杯!
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/startJourneyLinearLayout"
android:layout_below="@+id/startJourneyLinearLayout"
android:layout_marginLeft="65dp"
android:layout_marginTop="28dp"
android:ems="10" >
<requestFocus />
</EditText>
好吧,要聚焦编辑文本,您可以使用代码
private void requestFocus(View view) {
if (view.requestFocus()) {
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
}
}
//Function Call
requestFocus(yourEditetxt);
我在使用 EditText 时遇到了同样的问题,我查看了很多博客以找出这个错误的解决方案,但没有找到解决方案。
然后检查我将全屏行作为默认主题(AppTheme)的主题部分
style name="AppTheme" parent="@android:style/Theme.Holo.Light.NoActionBar.Fullscreen"
这导致在屏幕上加载软键盘时出现问题。 我只是尝试上面的代码,它只是打开软键盘不工作,我输入的内容没有显示在 EditText 中。
我只是将主题从默认更改为这个,它工作正常。
style name="PhoneActivityTheme" parent="Theme.AppCompat.DayNight"