143

私のアプリの 1 つに、「開始画面」(基本的にはメニュー) があり、EditTextその後にいくつかButtonの が続きます。問題は、私のユーザーの何人かが、アプリを開くと、EditText. 私が知る限り、これらのユーザーはすべてHTC Heroを使用しています。

これは 1.5 のバグですか? 私にできることはありますか?

4

12 に答える 12

288

アクティビティの onCreate メソッドで次のコード行を使用して、ユーザーが EditText をクリックしたときにのみキーボードがポップアップするようにすることができます。

this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 
于 2010-03-23T09:36:16.403 に答える
87
<application android:icon="@drawable/icon" android:label="@string/app_name">
    <activity android:name=".Main"
              android:label="@string/app_name"
              android:windowSoftInputMode="stateHidden"
              >

これは、Android 3.0、3.1、3.2、4.0 - コンパイルに使用されるエディター (Eclipse 3.7) で機能します。

ソフトウェア キーボードを非表示にしたいアクティビティごとに、アプリケーションのマニフェスト XML ファイルに「windowSoftInputMode="stateHidden"」を配置します。これは、キーボードが自動的に表示されず、ユーザーが「クリック」する必要があることを意味します。それを表示するテキスト フィールド。機能するものを1時間近く探したので、共有したいと思いました。

于 2012-01-24T22:14:36.130 に答える
6

このコードは、すべての Android バージョンで機能します。

@Override
 public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_login);

 //Automatic popping up keyboard on start Activity

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

 or

 //avoid automatically appear android keyboard when activity start
     getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
 }
于 2015-12-31T08:46:17.363 に答える
6

これを XML の親レイアウトに追加します。

android:focusable="true" 
android:focusableInTouchMode="true"

アクティビティの開始時にフォーカスが editText にないことを保証します。

于 2019-08-13T22:43:38.600 に答える
2

Android Mainfest.xmlのアクティビティ タグの下に 1 行のコードを追加できます。

 <activity
        android:name="com.sams.MainActivity"
        android:windowSoftInputMode="stateVisible" >
 </activity>

これはあなたを助けるかもしれません。

于 2014-07-11T09:50:25.883 に答える
2

そのバージョンの Android では、ビューがインフレートされると、フォーカスはデフォルトで最初のフォーカス可能なコントロールに設定されます。物理キーボードがない場合は、オンスクリーン キーボードがポップアップします。

これを修正するには、フォーカスを別の場所に明示的に設定します。フォーカスが EditText 以外に設定されている場合、スクリーン キーボードは表示されません。

エミュレータで Android 1.5 を実行して、これをテストしてみましたか?

于 2010-03-23T01:22:00.043 に答える
1

インポートが一番上にある場所にこれを含めます:

import android.view.WindowManager;

このコードを OnCreate 部分に追加します。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    ....
    getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
}
于 2019-02-28T09:37:21.523 に答える