2012-12-04 33 views
5

Benim uygulamada bir kayıt ekran var, EditTexts ve Spinners çok var. Kayıtlar alanına tek tek gitmek istiyorum.Android: EditText NextFocusDown değil tetikleyici Spinner

android:imeOptions="actionNext" uygulandım. Ama tüm Spinners yok sayar. Sadece EditText'e odaklanacaktır. Ayrıca setNextFocusDownId() denedim. Bu aynı zamanda iplikçikleri de görmezden geliyor.

<LinearLayout 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/reportentry11" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" > 

     <EditText 
      android:id="@+id/numbers" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 

      android:imeOptions="actionNext" 
      android:inputType="phone" 
      > 
      <requestFocus/> 
     </EditText> 

     <LinearLayout 
      xmlns:android="http://schemas.android.com/apk/res/android" 
      android:id="@+id/reportentry12" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal" 
      > 

      <TextView 
       android:id="@+id/txt_exp" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 

       android:text="EXP:" 
       android:textColor="#000000" 
       android:textSize="12dp" /> 

      <Spinner 
       android:id="@+id/spin_date" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:layout_weight="3" 
       android:focusable="true" 
       android:focusableInTouchMode="true" 
       android:nextFocusDown="@+id/spin_year" 
       android:text="date" 
       android:textSize="12dp" /> 

      <Spinner 
       android:id="@+id/spin_year" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:layout_marginRight="5dp" 

        android:nextFocusDown="@+id/cvc" 
       android:text="year" 
       android:textSize="12dp" /> 
     </LinearLayout> 

     <EditText 
      android:id="@+id/cvc" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:hint="@string/reg_label_cvc" 
      android:imeOptions="actionNext" 
      android:inputType="phone" /> 

     <EditText 
      android:id="@+id/fname" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:hint="@string/reg_label_fname" 
      android:imeOptions="actionNext" /> 

     <EditText 
      android:id="@+id/address" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:hint="@string/reg_label_address" 
      android:imeOptions="actionNext" /> 

     <EditText 
      android:id="@+id/city" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:hint="@string/reg_label_city" 
      android:imeOptions="actionNext" 
      android:nextFocusDown="@+id/pr_spin" /> 

     <LinearLayout 
      xmlns:android="http://schemas.android.com/apk/res/android" 
      android:id="@+id/reportentry13" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal" > 

      <TextView 
       android:id="@+id/txt_pr" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:text="PROV:" 
       android:textColor="#000000" 
       android:textSize="12dp" /> 

      <Spinner 
       android:id="@+id/pr_spin" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:text="date" 
       android:imeOptions="actionNext" 
       android:textSize="14dp" /> 

      <EditText 
       android:id="@+id/pcode" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:hint="@string/reg_label_pcode" 
       android:imeOptions="actionDone" /> 
     </LinearLayout> 

     <Button 
      android:id="@+id/register_register_button" 
      android:layout_width="wrap_content" 
      android:background="@drawable/green_button_bg" 
      android:onClick="completeClicked" 
      android:text="@string/reg_label_complete" 
      android:textSize="28dp" 
      android:textStyle="bold" /> 
    </LinearLayout> 

bana iplikçiler tetiklemek için en iyi yol verin.

Düzenlemeniz metinler üzerinde
+0

.... [link] [1] [1]: http: //stackoverflow.com/questions/6443212/spinner-did-not-got-focus Teşekkürler ... – user4232

cevap

4

, onEditorAction geçersiz kılmak ve odak vermek (veya değer değiştirici açık gibi ne gerekiyorsa) ...

yourEditTXT.setOnEditorActionListener(new OnEditorActionListener() { 
    @Override 
    public boolean onEditorAction(TextView view, int actionID, KeyEvent event) { 
      if (actionID == EditorInfo.IME_ACTION_NEXT) { 
       //do your stuff here... 
       return true; 
      } 
      return false; 
    } 
});  

Düzenleme 04/12: Hala son olarak bununla mücadele vardı bakınız gece, bir çözüm bulamadıysanız (ve göndermediyseniz) ya da bunu okuyan diğer kişilere yardımcı olmak için, bu, metni düzenlemek için çeviriciden almanıza yardımcı olabilir.

mySpinner.setOnItemSelectedListener(new MyOnItemSelectedListener());    

public class MyOnItemSelectedListener implements OnItemSelectedListener { 

     public void onItemSelected(AdapterView<?> parentview, View v, int position, long id) { 
      // your spinner proces code 
      // then when you are done, 
      yourEditText.setFocusableInTouchMode(true); //if this is not already set 
      yourEditText.requestFocus(); //to move the cursor 
      final InputMethodManager inputMethodManager = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE); 
      inputMethodManager.showSoftInput(yourEditText, InputMethodManager.SHOW_IMPLICIT); // this line and the one above will open the soft keyboard if it doesn't already open 
     } 

     public void onNothingSelected(AdapterView<?> arg0) { } 
    }; 
+0

Onun çalışma, ancak pop-up eğirme listesi göstermiyor, sadece spinner – Sridhar

+0

vurgulamak @GMRamesh artı whatWidget.performClick() hile yapmak gerektiğini söyledi. – logray

+0

edittext için spinner çalışıyor, kod çalıştırmak için bana kod vermek – Sridhar

2

yapmak xml dosyasında aşağıdaki: Şu bağlantı size yardımcı olacağını düşünüyorum

<Spinnner 
    android:focusable="true" 
    android:focusableInTouchMode="true" 
    android:nextFocusDown="@+id/youedittextid" 
/> 
+0

@GM Ramesh, Çalışmıyor ... – Sridhar

+0

benim için çalışıyordu ... kodunuzla iyice kontrol edin ve buna göre değiştirin ... Eğer yukarıdaki cevabı yapıştırırsanız işe yaramazsa ... buna göre değişiklikler yapmanız gerekir. sen benim cevabımla birlikte –

+0

ve @logray cevabını da ekleyin ... işe yarayabilir –