6

AndroidManifest.xmlandroid:windowSoftInputMode="stateAlwaysVisible"のアクティビティに追加しました。これが私のレイアウトです。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <EditText android:id="@+id/EditText01" android:layout_width="wrap_content"
        android:layout_height="wrap_content"></EditText>
    <EditText android:id="@+id/EditText02" android:layout_width="wrap_content"
        android:layout_height="wrap_content"></EditText>
    <Button android:id="@+id/Button01" android:layout_width="wrap_content"
        android:layout_height="wrap_content" android:text="Send"></Button>
</LinearLayout>

代替テキスト http://img227.imageshack.us/img227/2006/18021414.png

アクティビティが開始されると、EditText はフォーカスされますが、ソフト キーボードは表示されません。EditText をクリックすると、ソフト キーボードが表示されます。アクティビティの開始時にソフト キーボードを表示するには、追加のパラメーターを設定する必要がありますか?

ありがとう

4

2 に答える 2

15

解決策 1:

アクティビティの onCreate() メソッド内に次のコードを記述します

InputMethodManager imm = (InputMethodManager)
    SearchActivity.this.getSystemService(Context.INPUT_METHOD_SERVICE);

if (imm != null){
    imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,0);
}

解決策 2:

次のメソッドを作成し、onCreate() から呼び出します

private void showVirturalKeyboard(){
    Timer timer = new Timer();
    timer.schedule(new TimerTask() {
         @Override
         public void run() {
              InputMethodManager m = (InputMethodManager) SearchActivity.this.getSystemService(Context.INPUT_METHOD_SERVICE);

              if(m != null){
                // m.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
                m.toggleSoftInput(0, InputMethodManager.SHOW_IMPLICIT);
              } 
         }

    }, 100);         
}
于 2010-04-27T07:26:45.160 に答える
7

これをアクティビティの onCreate() メソッドに追加してみてください

this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE); 
于 2010-04-26T11:12:20.920 に答える