也许还需要onClick之外的东西

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了也许还需要onClick之外的东西相关的知识,希望对你有一定的参考价值。

这是我的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并单击“完成”时,它可以工作。当我在电子邮件中单击EmailEditText类型并单击下一步时,将自动选择passowordEditText。当我输入密码并单击完成时。那不起作用。

为什么以及如何解决它?提前致谢。

答案

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>
另一答案

所以我自己解决了这个问题。

但感谢@ADM。当Android自己调用View时,不会首先调用onClick。所以我从instantiateItem中的ViewPageAdapter调用layoutBuilt,其中已经创建了新的布局。

但是,谢谢大家。

以上是关于也许还需要onClick之外的东西的主要内容,如果未能解决你的问题,请参考以下文章

除了 keycloak 令牌之外,我还需要其他任何东西来访问使用 keycloak 保护的服务吗?

关于片段生命周期

“ES7 React/Redux/GraphQL/React-Native 片段”不适用于 javascript 文件。除了安装它,我还需要配置其他东西吗?

在选项卡式应用程序中的何处放置位置代码?

行 onClick 影响其他行

设置onclick侦听器在android中无法从一个片段移动到另一个活动[重复]