2011-08-07 17 views
0

私には、編集テキストのリストが提示されるアクティビティがあります。問題は、アクティビティが開始されるとすぐに、最初の編集テキストのために仮想キーボードがすぐに起動されることです。このテキストを編集する前にスピナーがあるので、このようなことは起こりたくありません。このようにキーボードをポップアップすると、以前のスピナーを忘れてしまうことがよくあります。EditTextオブジェクトのAndroidの問題

<Spinner 
    android:id="@+id/event_location" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="30px" 
    android:prompt="@string/location_prompt" /> 
<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Event Name: " /> 
<EditText 
    android:id="@+id/event_name" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" /> 
<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Activity Type: " /> 
<Spinner 
    android:id="@+id/event_type" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" /> 
<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Address: " /> 
<EditText 
    android:id="@+id/event_address" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" /> 

概要:

はここに関連するコードだのEditTextとの活動が開始され、仮想キーボードが自動的にポップアップ表示されます。ユーザーが編集テキストを押さない限り、これをやりたいとは思わない。

ありがとうございました。

答えて

2

のEditTextが自動的に設定されていますフォーカスのため、android:focusable="false"またはeditText.setFocusable(false)を入力して、スピナーが表示されている間にEditTextがフォーカスされないようにする必要があります。 editText.setSelected(false)もお試しください。

1

これにあなたのスピナーXMLを変更してみてください:

<Spinner 
android:layout_marginTop="30px" 
android:layout_height="wrap_content" 
android:layout_width="fill_parent" 
android:id="@+id/event_location" 
android:prompt="@string/location_prompt"> 
<requestFocus /> 
</Spinner> 

また、各のEditTextのためにやってみてください:この記事で

android:focusable="false" 
android:focusableInTouchMode="false" 

ルック:Stop EditText from gaining focus at Activity startup

+0

無事を確認してください、私はそれを試してみますよ。何もプロンプトが出ないようにする方法はありますか?私。ユーザーが何かをクリックするまで何も「ポップアップ」しません。 EDIT - requestFocusは何も変更しませんでした。 – JDS

+0

私は自分の答えを編集しました。 – pqn

1

これは、それが私のためにどのように動作するかです:

  1. は、エディットテキストは文句を言わない、起動時にフォーカスを得ることを確認する:
android:focusable="false" 
:XMLで
はfalseにのEditTextのフォーカス可能な属性を設定します

2. EditTextを起動後に再びフォーカス可能にするには のコードからフォーカス可能属性を設定しますsetContent()方法後の指名手配活動の方法:

public void onCreate(Bundle icicle) { 
    super.onCreate(icicle); 

    setContentView(R.layout.main_view); 
    .... 

    EditText et = (EditText) findViewById(R.id.et_notes); 

    et.setFocusable(true); 

    et.setFocusableInTouchMode(true); 

    ... 
}