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