【问题标题】:Maybe need something other than onClick也许需要除 onClick 以外的其他东西
【发布时间】:2017-12-31 11:57:42
【问题描述】:

这里是来自我的 ViewPager 中的一个布局的 sn-p。

<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;
            }
        });
}

所以我的问题是,用户必须在“完成”按钮上单击两次才能正常工作。

注意:当我手动单击密码编辑文本而不是单击完成时,它会起作用。当我单击电子邮件中的 EmailEditText 类型并单击下一步时,将自动选择密码编辑文本。当我输入密码并单击完成时。那行不通。

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

【问题讨论】:

    标签: java android android-layout android-edittext


    【解决方案1】:

    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>
    

    【讨论】:

    • @marcelo 如果我误解了这个问题,请纠正我。谢谢
    【解决方案2】:

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

    但感谢@ADM。当Android自己调用View时,不会首先调用onClick。因此,我从已创建新布局的实例化项中的 ViewPageAdapter 调用 layoutBuilt。

    但谢谢大家。

    【讨论】:

    • 感谢 ADM 加 1,而不是写“谢谢”。这样做不会让你变得不那么富有——恰恰相反,你会因为认识而变得更富有。仁慈提高仁慈。新年快乐。欢迎使用 StackOverflow。
    猜你喜欢
    • 1970-01-01
    • 2015-10-25
    • 2020-12-04
    • 2012-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-18
    相关资源
    最近更新 更多