动态添加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*/)
我正在动态添加edittext,所以没有唯一的ID为所有edittext – user1401232
您可以使用view.setId(); –