2012-09-19 12 views
8

私のアプリでは、ユーザーがラジオボタンを使用して行う選択に応じて、情報(e1とe2)を収集するために1つまたは2つのedittextを表示する必要があります。これは、edittextの可視性状態をGONEに設定することによって行われ、正常に動作します。プログラムでEditText IME_ACTIONを変更します

私の問題は、プログラム、すなわち、それぞれのケースについての "次へ" "完了" からIME_ACTIONを設定する方法である:

1)E1のみが表示されている -

2 DONEにE1のIME_ACTIONを設定) e1とe2が表示されます.e1のIME_ACTIONをNEXTに設定し、IME_ACTIONをe2のDONEに設定します。

Android 2.2デバイスでandroid:minSdkVersion = "4"とandroid:targetSdkVersion = "16"を使用してテストしています。

ここに私のレイアウトです:

<EditText 
android:id="@+id/e1" 
android:layout_width="0dip" 
android:layout_height="wrap_content" 
android:inputType="text" 
android:maxLines="1" 
android:singleLine="true" 
android:imeOptions="actionDone" 
android:hint="@string/sh15" 
android:textColor="@android:color/black" 
android:textSize="@dimen/s"> 
</EditText>   
<EditText 
android:id="@+id/e2" 
android:layout_width="0dip" 
android:layout_height="wrap_content" 
android:inputType="text" 
android:maxLines="1" 
android:singleLine="true" 
android:imeOptions="actionDone" 
android:hint="@string/sh16" 
android:textColor="@android:color/black" 
android:textSize="@dimen/s"> 
</EditText> 

は、ここに私のコードです:

RadioGroup r= (RadioGroup) dialog.findViewById(R.id.rg); 
    r.setOnCheckedChangeListener(new OnCheckedChangeListener() 
    { 
    public void onCheckedChanged(RadioGroup group, int checkedId) 
    { 
    switch(checkedId) 
    { 
    case R.id.rb1: //show one edittext 
     e1.setVisibility(View.VISIBLE);    
     e2.setVisibility(View.GONE); 
     e1.setImeOptions(EditorInfo.IME_ACTION_DONE); 
    break; 
    case R.id.rb2: //show two edittext 
     e1.setVisibility(View.VISIBLE); 
     e2.setVisibility(View.VISIBLE); 
     e1.setImeOptions(EditorInfo.IME_ACTION_NEXT); 
     e2.setImeOptions(EditorInfo.IME_ACTION_DONE); 
    break; 

    } 
    } 
    }); 
+0

解決方法はありますか? –

答えて

6
e2.setOnEditorActionListener(new TextView.OnEditorActionListener() { 
     @Overrid 
    public boolean onEditorAction(TextView v, int actionId,KeyEvent event) { 
     if (actionId == EditorInfo.IME_ACTION_DONE) { 
       //your code  
       } 
      } 
)}; 
+0

申し訳ありませんが、私はあなたの考えを理解していません。私が必要とするのは、表示されるエディットテキストの数に応じて、IME_ACTION_DONEからIME_ACTION_NEXTに変更する方法です。 – Pedro

1

、誰もがここに土地の場合:EditText.setImeOptions(EditorInfo.IME_ACTION_NEXT);と神の助けをあなたはそれがTouchWizがいた場合:)

も、私は、EditTextがフォーカスを持っている場合に切り替えることができないときに問題を気付いたので、keを閉じるようにしてくださいyboardとフォーカスを取り消す

+0

これは動作していません.imoption dint change – Sudhasri

+0

@Sudhasriあなたがテストしているデバイスの仕様は何ですか? – AllDayAmazing

+0

私はこれをSamsung Galaxyノート2で試しました。 – Sudhasri

関連する問題