这是我的问题,我有一个非常简单的布局,显示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>
当我使用此布局开始活动时,键盘显示聚焦title_field,因此我可以编写并单击其他字段(当键盘仍然打开时)并编写说明。但是,如果我隐藏键盘它不会再显示(键盘),除非我点击title_field,所以description_field没有响应,除了title_field支持开箱即用(包括上下文操作栏),而description_field不会让我甚至选择。
我刚开始Android开发,有什么我想念的吗?
答案 0 :(得分:4)
如果您希望在特定活动开始时使用键盘(如搜索活动),请在清单中使用此代码 -
注意 - 一旦用户登陆活动,它就会弹出键盘......
<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()弹出键盘!!
希望我帮助你!! 干杯!
答案 1 :(得分:2)
取出android:textIsSelectable="true"
。
OR
编辑:
如果您需要能够将文本作为新编辑文本的一部分使用:
将android:提示改为andoid:text以便能够使用键盘使用文本。但是,如果键盘关闭,它仍然需要返回第一个edittext,然后它将保持打开第二个edtitext。
我将使用高度作为&#34; wrap_content&#34;对于两个edittext框。
<EditText
...
android:text="descriptionHint"
android:focusableInTouchMode="true"
android:textIsSelectable="true"
android:layout_weight="1"/>
答案 2 :(得分:0)
<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>
答案 3 :(得分:0)
对于聚焦编辑文本,您可以使用代码
private void requestFocus(View view) {
if (view.requestFocus()) {
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
}
}
//Function Call
requestFocus(yourEditetxt);
答案 4 :(得分:0)
我在EditText上也遇到了同样的问题,我正在检查许多博客以找到解决此错误的方法,但没有解决方法。
要检查主题部分,我将全屏显示的行设置为默认主题(AppTheme)
style name="AppTheme" parent="@android:style/Theme.Holo.Light.NoActionBar.Fullscreen"
,这会导致在屏幕上加载软键盘时出现问题。 我只是尝试上面的代码,它只是打开的软键盘不起作用,我输入的内容无法在EditText中显示。
我只是将主题从默认更改为该主题,并且可以正常工作。
style name="PhoneActivityTheme" parent="Theme.AppCompat.DayNight"