Android EditText不显示键盘

时间:2013-08-21 01:19:20

标签: android keyboard android-edittext

我有一个带有三个EditText的屏幕,当我点击它时,屏幕顶部的第一个屏幕没有调用键盘。我没有使用AVD,我正在使用自己的设备,并在其他设备上测试过相同的结果。

我将屏幕放在这里和xml代码...... EditTexts,只是位置之间没有什么不同。 要在EditText中输入,我需要选择上面的EditText之一,然后键盘出现。当我再次选择第一个EditText时,至少它不会隐藏。 我已经尝试过setFocus(true),但它并没有解决我的问题。 拜托,帮助我!

XML

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/background"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".SaldoCadastro" >

<TextView
    android:id="@+id/tvTituloReg"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:text="Saldo Banco"
    android:textAppearance="?android:attr/textAppearanceLarge" />

<TextView
    android:id="@+id/tvErroSenha1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/tvTituloReg"
    android:layout_marginTop="17dp"
    android:text="Insert on the field below how much you have in your bank." />

<TextView
    android:id="@+id/textView2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/tvErroSenha1"
    android:layout_below="@+id/tvErroSenha1"
    android:layout_marginTop="41dp"
    android:text="Insert on the field below how much is your credit card limit." />

<EditText
    android:id="@+id/etSaldo"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/tvErroSenha1"
    android:ems="10"
    android:inputType="numberDecimal" >

    <requestFocus />
</EditText>

<EditText
    android:id="@+id/etCartaoLimite"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/textView2"
    android:layout_below="@+id/textView2"
    android:ems="10"
    android:inputType="numberDecimal" />

<TextView
    android:id="@+id/textView3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/etCartaoLimite"
    android:layout_below="@+id/etCartaoLimite"
    android:text="About your credt card how much you&apos;ve spent already." />

<EditText
    android:id="@+id/etCartao"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/textView3"
    android:layout_below="@+id/textView3"
    android:ems="10"
    android:inputType="numberDecimal" />

<Button
    android:id="@+id/btRegisterSaldo"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/etCartao"
    android:layout_below="@+id/etCartao"
    android:layout_marginLeft="14dp"
    android:text="Register" />

6 个答案:

答案 0 :(得分:9)

<activity
    ......
    android:windowSoftInputMode="adjustResize"
    ...... >
</activity>

请在AndroidManifest.xml中添加此属性

答案 1 :(得分:1)

检查您的layout.xml是否已实现布局实现android:descendantFocusability="blocksDescendants"

答案 2 :(得分:0)

从xml中删除此行:

<requestFocus />

否则在代码中你可以添加:

editText.clearFocus();

答案 3 :(得分:0)

嘿请检查您的AndroidManifest活动 然后像这样做一些改变

        android:windowSoftInputMode="stateAlwaysVisible"

在此布局示例的活动中:

<activity
    android:name="com.example.a.MainActivity"
        android:windowSoftInputMode="stateAlwaysVisible" //this will make your keyboard work
    android:label="@string/app_name" >

答案 4 :(得分:0)

你的意思是:当你开始你的活动时,soft_keyboard会显示出来吗?如果这样,你做的只是添加这段代码:

android:windowSoftInputMode="adjustResize"

到你的AndroidManifest.xml 例如:

   <activity
        android:name="com.fortrun.testcrashlytics.MainActivity"
        android:label="@string/app_name"
        android:windowSoftInputMode="adjustResize" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
希望能帮到你!

答案 5 :(得分:0)

就我而言,使用android EditText代替我的自定义EditText解决了问题。