动态添加EditTexts焦点从第一个到最后一个键盘下一个按钮被点击

问题描述:

我正在线性布局动态添加edittext。当我开始编辑第一个编辑文本,然后按下键盘上的下一个按钮时,焦点将转到最后一个,而不是转到第二个。这里是我的活动代码..动态添加EditTexts焦点从第一个到最后一个键盘下一个按钮被点击

LinearLayout layout =(LinearLayout) findViewById(R.id.activity_main); 
for (int i = 0; i < 3; i++) { 
     final View childView = this.getLayoutInflater().inflate(R.layout.tabitem, null); 
     TextView questionText = (TextView) childView.findViewById(R.id.questionId); 
     EditText editText = (EditText) childView.findViewById(R.id.enterAnswerTextId); 

     questionText.setText("Whats up"); 
     layout.addView(childView); 
     childView.setTag(i); 
    } 

活动只是一个线性布局。和我膨胀

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" android:layout_width="match_parent" 
android:layout_height="match_parent"> 


<LinearLayout 
    android:layout_width="match_parent" 
    android:id="@+id/separatorId" 
    android:orientation="horizontal" 
    android:layout_height="1dp" 
    /> 

<TextView 
    android:layout_width="wrap_content" 
    android:id="@+id/questionId" 
    android:layout_height="wrap_content" 
    android:paddingLeft="20dp" 
    android:paddingTop="20dp" 
    android:paddingBottom="15dp" 
    /> 

<RelativeLayout 
    android:id="@+id/enterAnswerLayoutId" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    > 

    <EditText 
     android:id="@+id/enterAnswerTextId" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginRight="20dp" 
     android:layout_marginLeft="20dp" 
     android:maxLines="1" 
     android:layout_centerHorizontal="true" 
     android:inputType="textPassword" 
     android:hint="Enter Answer" 
     android:padding="20dp" 
     android:imeOptions="actionNext|actionDone"/> 

</RelativeLayout> 

设置ID

通过这样做解决了这个问题

editText.setImeOptions(EditorInfo.IME_ACTION_NEXT); 

的标签项目布局应定义到何处寻找下一个焦点

editText.setNextFocusForwardId(R.id.secondView); 

,你也可以用这种方式

view.setId(/*some unique integer as id*/) 
+0

我正在动态添加edittext,所以没有唯一的ID为所有edittext – user1401232

+0

您可以使用view.setId(); –