这是我的ViewPager中的一个布局的片段。
<android.support.design.widget.TextInputLayout
android:layout_width="286dp"
android:layout_height="wrap_content"
android:id="@+id/textInputLayout2"
android:layout_marginTop="15dp"
android:weightSum="1">
<EditText
android:id="@+id/email"
android:layout_marginTop="30dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/hint_email"
android:inputType="textEmailAddress"
android:singleLine="true"
android:textColor="@android:color/white"/>
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:layout_width="286dp"
android:layout_height="wrap_content"
android:id="@+id/textInputLayout"
android:layout_marginTop="15dp"
android:weightSum="1">
<EditText
android:id="@+id/password"
android:layout_marginTop="30dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/hint_password"
android:inputType="textPassword"
android:singleLine="true"
android:textColor="@android:color/white"
android:onClick="layoutBuilt"/>
</android.support.design.widget.TextInputLayout>
这是layoutBuild void:
public void layoutBuilt(View view) {
inputEmail = (EditText) findViewById(R.id.email);
inputPassword = (EditText) findViewById(R.id.password);
inputPassword.setOnEditorActionListener(new TextView.OnEditorActionListener() {
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_DONE) {
//ACTION DONE
}
return false;
}
});
}
所以我的问题是,用户必须在完成按钮上单击两次,它才能正常工作。
注意:当我手动点击passowordEditText而不是单击Done时,它会起作用。当我在电子邮件中单击EmailEditText类型并单击下一步时,将自动选择passowordEditText。当我输入密码并单击完成时。这不起作用。
为什么以及如何解决这个问题? 提前谢谢。
答案 0 :(得分:0)
将android:imeOptions
设置为`EditText。
<android.support.design.widget.TextInputLayout
android:layout_width="286dp"
android:layout_height="wrap_content"
android:id="@+id/textInputLayout2"
android:layout_marginTop="15dp"
android:weightSum="1">
<EditText
android:id="@+id/email"
android:layout_marginTop="30dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/hint_email"
android:inputType="textEmailAddress"
android:singleLine="true"
android:imeOptions="actionNext"
android:textColor="@android:color/white"/>
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:layout_width="286dp"
android:layout_height="wrap_content"
android:id="@+id/textInputLayout"
android:layout_marginTop="15dp"
android:weightSum="1">
<EditText
android:id="@+id/password"
android:layout_marginTop="30dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/hint_password"
android:inputType="textPassword"
android:imeOptions="actionDone"
android:singleLine="true"
android:textColor="@android:color/white"
android:onClick="layoutBuilt"/>
</android.support.design.widget.TextInputLayout>
答案 1 :(得分:0)
所以我自己解决了问题。
但是感谢@ADM。当Android自己调用View时,onClick不会被调用。所以我从instantiateItem中的ViewPageAdapter调用layoutBuilt,其中已经创建了新的布局。
但是,谢谢大家。