仅当重新调整EditText的焦点时才执行EditText onclick操作

时间:2019-06-07 18:16:14

标签: android android-edittext imeoptions

我试图创建一个简单的editText,为此我定义了一个简单的onclick动作,该动作将名称再次输出到窗口。 我的问题是,似乎仅当我重新调整editText的焦点时才调用此操作。 因此,我将焦点放在editText上,输入我的名字,然后按Enter键。现在,该窗口关闭,但名称未放入该窗口。当我再次聚焦editText时,该名称将被放置到窗口中。

当我在XML中未设置android:imeOptions =“ actionDone”的情况下完全相同时,一切正常(除了键盘没有关闭,当然也没有关闭)

我来自XML的editText:

<EditText
            android:id="@+id/name_edit_text"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="16dp"
            android:hint="Name"
            android:imeOptions="actionDone"
            android:inputType="text"
            android:onClick="readName" />

我的readName()方法:

public void readName(View view) {
        EditText nameEditText = (EditText) findViewById(R.id.name_edit_text);
        String nameWorking = nameEditText.getText().toString();
        name = nameWorking;
        displayOrderSummary();
    }

2 个答案:

答案 0 :(得分:0)

不能完全确定整个活动的样子,但是我相信,如果您在readName()方法之外删除绑定,它应该可以正常工作。

将下面的代码放入您的onCreate()中。

EditText nameEditText = (EditText) findViewById(R.id.name_edit_text);

答案 1 :(得分:0)

您可以将以下内容放在android:onClick方法中,而不使用onCreate()

EditText nameEditText = (EditText) findViewById(R.id.name_edit_text);
nameEditText.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        readName(v)
    }
}