Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何将焦点从上次编辑文本字段更改为单击软输入中的“完成”按钮?_Android - Fatal编程技术网

Android 如何将焦点从上次编辑文本字段更改为单击软输入中的“完成”按钮?

Android 如何将焦点从上次编辑文本字段更改为单击软输入中的“完成”按钮?,android,Android,当在软输入上单击“完成”时,我想将焦点从“编辑文本”字段更改为“提交”按钮 我有以下代码: <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:paddingTop="5sp"> <TextView android:la

当在软输入上单击“完成”时,我想将焦点从“编辑文本”字段更改为“提交”按钮

我有以下代码:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:paddingTop="5sp">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Driver + Conductor :"
        android:textSize="17sp"
        android:textStyle="bold" />

    <EditText
        android:id="@+id/bus_driver_above60"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="5dp"
        android:layout_weight="1"
        android:hint="Driver"
        android:inputType="numberDecimal"
        android:textAlignment="center"
        android:textColor="#000"
        android:nextFocusDown="@+id/bus_conductor_above60"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="2dp"
        android:text="+"
        android:textSize="17sp"
        android:textStyle="bold" />

    <EditText
        android:id="@+id/bus_conductor_above60"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="2dp"
        android:layout_weight="1"
        android:hint="Conductor"
        android:inputType="numberDecimal"
        android:textAlignment="center"
        android:textColor="#000"
        android:nextFocus="@+id/bus_above60_btn"/>

</LinearLayout>

<Button
    android:id="@+id/bus_above60_btn"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:text="Calculate"
    android:textSize="17sp"
    android:textColor="#ffffff"
    android:textStyle="bold"
    android:background="#3498DB"/>
将焦点从“驱动程序编辑”文本字段更改为“导体编辑”文本字段

但在导体编辑文本字段后,有一个计算按钮-总线大于60 btn

android:nextFocusDown="@+id/bus_above60_btn" 
不会将焦点从“导体编辑”文本字段更改为该字段下方的按钮


如何实现这一点?

如果所有组件都在同一布局中,则代码将正常工作。因此,首先将您的按钮包含在其他编辑文本所在的相同布局中,然后再试一次。

如果所有组件都位于相同的布局中,您的代码将正常工作。因此,首先将你的按钮放在其他编辑文本所在的同一版面中,然后再试一次。

好的,有两种方法可以实现你的目标

<EditText
            android:id="@+id/bus_conductor_above60"
            android:imeOptions="actionDone"
           />
1.我的布局完全符合您的要求:
希望这有帮助

有两种方法可以实现你的目标

1.我的布局完全符合您的要求:
希望这有帮助

如果您只想使按钮聚焦于已完成的操作,首先必须将按钮
focusableInTouchMode
设置为
true

<Button
    android:id="@+id/bus_above60_btn"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:text="Calculate"
    android:focusableInTouchMode="true"
    android:textSize="17sp"
    android:textColor="#ffffff"
    android:textStyle="bold"
    android:background="#3498DB"/>

如果您只想使按钮集中在已完成的操作上,首先必须将按钮
focusableInTouchMode
设置为
true

<Button
    android:id="@+id/bus_above60_btn"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:text="Calculate"
    android:focusableInTouchMode="true"
    android:textSize="17sp"
    android:textColor="#ffffff"
    android:textStyle="bold"
    android:background="#3498DB"/>

我认为
nextFocusDown
只适用于编辑文本,而不适用于按钮。我认为您必须在EditText上使用
setOnEditorActionListener
,我认为
nextFocusDown
仅适用于EditText,而不适用于按钮。我想你必须在EditTextThank上使用
setOnEditorActionListener
。这成功了!但是焦点被横幅广告重叠了。我能做些什么使焦点位于横幅广告之上吗?设置
android:focusableInTouchMode=“false”
横幅广告可能会修复它不起作用!!按钮正在向上滚动,并在软键盘上方对焦,但在同一位置,有横幅广告阻止查看。您可以共享它的图片吗?在上次编辑文本时,对焦->|广告阻止查看按钮->|滚动时,按钮可见->谢谢。这成功了!但是焦点被横幅广告重叠了。我能做些什么使焦点位于横幅广告之上吗?设置
android:focusableInTouchMode=“false”
横幅广告可能会修复它不起作用!!按钮正在向上滚动,并在软键盘上方对焦,但在同一位置,有横幅广告阻止查看。您可以共享它的图片吗?在上次编辑文本时,对焦->|广告阻止查看按钮->|滚动时,按钮可见->
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:gravity="center"
    android:orientation="vertical"
    android:padding="15dp">

    <android.support.design.widget.TextInputLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <EditText
            android:id="@+id/etUsername"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:maxLines="1"
            android:hint="@string/username"
            android:paddingLeft="10dp"
            android:inputType="text"
            android:paddingRight="10dp"
            android:paddingStart="10dp"
            android:paddingEnd="10dp" />

    </android.support.design.widget.TextInputLayout>

    <android.support.design.widget.TextInputLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:passwordToggleEnabled="true"
        >

        <EditText
            android:id="@+id/etPassword"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dp"
            android:maxLines="1"
            android:hint="@string/password"
            android:inputType="textPassword"
            android:paddingLeft="10dp"
            android:paddingRight="10dp"
            android:paddingStart="10dp"
            android:paddingEnd="10dp"  />
    </android.support.design.widget.TextInputLayout>

    <Button
        android:id="@+id/btnLogin"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="30dp"
        android:background="@color/colorPrimary"
        android:text="@string/login"
        android:textColor="@color/white"
        android:textSize="17sp" />
</LinearLayout>
edittext.setOnKeyListener(new View.OnKeyListener() {
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            if ((event.getAction() == KeyEvent.ACTION_DOWN) && (keyCode == KeyEvent.KEYCODE_ENTER)) {
                Toast.makeText(HelloFormStuff.this, edittext.getText(), Toast.LENGTH_SHORT).show();
                return true;
            }
            return false;
        }
    });
<Button
    android:id="@+id/bus_above60_btn"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:text="Calculate"
    android:focusableInTouchMode="true"
    android:textSize="17sp"
    android:textColor="#ffffff"
    android:textStyle="bold"
    android:background="#3498DB"/>
bus_conductor_above60.setOnEditorActionListener(new TextView.OnEditorActionListener() {
    @Override
    public boolean onEditorAction(TextView textView, int action, KeyEvent keyEvent) {
        if(action == EditorInfo.IME_ACTION_DONE)
            bus_above60_btn.requestFocus();
        return false;
    }
});