Android 键盘输入

Android Keyboard Input

我开始编写一个应用程序,启动时总是有一个文本输入,底部有一个闪烁的光标。我没有在 xml 文件中定义 EditText,也不需要任何文本输入。 我不知道为什么它会显示那部分。谁能帮我摆脱它?

编辑: 我添加了清单文件。

这里是当前的*.xml文件

<?xml version="1.0" encoding="utf-8"?>
<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:orientation="vertical"
    tools:context="de.test.ble_benchmark.MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/nodevice"
        android:id="@+id/device"
        android:textSize="20sp"
        android:textStyle="bold"
        android:layout_gravity="center_horizontal"
        android:layout_marginLeft="190dp"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true" />

        <ProgressBar
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:indeterminate="true"
            android:layout_gravity="center_horizontal"
            android:layout_marginLeft="336dp"
            android:layout_alignTop="@+id/console"
            android:layout_centerHorizontal="true" />


    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/console"
        android:layout_alignParentLeft="true"
        android:layout_marginLeft="0dp"
        android:layout_alignParentTop="true"
        android:layout_marginTop="144dp" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/scan"
        android:id="@+id/scan"
        android:textSize="25sp"
        android:textStyle="bold"
        android:onClick="onClick"
        android:layout_gravity="center"
        android:layout_marginLeft="134dp"
        android:layout_centerVertical="true"
        android:layout_centerHorizontal="true" />

</RelativeLayout>

清单:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="de.tuhh.et5.tills.ble_benchmark">

    <uses-permission android:name="android.permission.BLUETOOTH" />
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
    <uses-feature android:name="android.hardware.bluetooth_le" android:required="true"/>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>



    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        >
        <activity android:windowSoftInputMode="stateHidden" android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <service android:name=".BlunoService"/> >

    </application>

</manifest>

编辑:

好的,似乎还有更多内容。我不确定,但它似乎相关.. 我尝试更改那些 TextView 的可见性并获得空指针异常。有些东西搞砸了......

我想不通。这是生成异常的方法:

public void updateUi(){

        Button scan = (Button)findViewById(R.id.scan);
        ProgressBar search = (ProgressBar)findViewById(R.id.progressBar);
        TextView output = (TextView)findViewById(R.id.output);
        TextView deviceName = (TextView)findViewById(R.id.device);



        switch (layoutState){
            case 0:
                // close
                super.onBackPressed();
                cleanup_bluno();
                d("State 0");
                break;
            case 1:
                // Start
                d("State 1");
                search.setVisibility(View.GONE);
                deviceName.setVisibility(View.GONE);
                scan.setVisibility(View.VISIBLE);
                output.setVisibility(View.VISIBLE);
                break;
            case 2:
                // Searching
                d("State 2");
                search.setVisibility(View.VISIBLE);
                deviceName.setVisibility(View.GONE);
                scan.setVisibility(View.GONE);
                output.setVisibility(View.GONE);
                break;
            case 3:
                // Device Found
                d("State 3");
                search.setVisibility(View.GONE);
                deviceName.setVisibility(View.VISIBLE);
                scan.setVisibility(View.GONE);
                output.setVisibility(View.VISIBLE);
                break;
            default:
                break;
        }
    }

它开始进入状态一并在设置可见性时崩溃。

在您的 activity onCreate() 方法中添加这行代码。我认为以下可能有效

 getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);

好吧,我有点尴尬...有人告诉我 运行 "invalidate Caches / Restart"。现在问题消失了...

抱歉打扰了,感谢您的调查:-)