我希望在单击软输入时将焦点从编辑文本字段更改为提交按钮。
我有以下代码:
<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"/>
这里是代码,
android:nextFocusDown="@+id/bus_conductor_above60"
将焦点从“驱动程序编辑”文本字段更改为“导体编辑”文本字段。
但在导体编辑文本字段后,有一个计算按钮 - bus_above60_btn。
android:nextFocusDown="@+id/bus_above60_btn"
未将焦点从导体编辑文本字段更改为该字段下方的按钮。
我如何实现这一目标?
答案 0 :(得分:1)
Configuration DomainJoin{
$cred = Get-AutomationPSCredential -Name "azurelogin"
Login-AzureRmAccount $cred
Import-DscResource -ModuleName 'PSDesiredStateConfiguration'
Import-DscResource -ModuleName 'xDSCDomainjoin'
$dscDomainAdmin = Get-AzureRmAutomationCredential -Name "GSY admin" -ResourceGroupName "RG-DC-ROCS" -AutomationAccountName "RocsAutomation"
$dscDomainName = Get-AzureRMAutomationVariable -Name "dscDomainName" -ResourceGroupName "RG-DC-ROCS" -AutomationAccountName "RocsAutomation"
#PSDscAllowDomainUser = $True
node localhost
{
xDSCDomainjoin JoinDomain
{
Domain = $dscDomainName
Credential = $dscDomainAdmin
}
}
}
在您的代码中
<EditText
android:id="@+id/bus_conductor_above60"
android:imeOptions="actionDone"
/>
答案 1 :(得分:1)
如果所有组件的布局相同,则代码将起作用。因此,首先将您的按钮包含在相同的布局中,然后放置其他editTexts,然后尝试。
答案 2 :(得分:1)
Afaik有两种方法可以实现目标
<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>
它的原因from documentation如下:
焦点移动基于找到最近的算法 在给定方向上的邻居。在极少数情况下,默认算法 可能与开发人员的预期行为不符。在这些 在这种情况下,您可以使用这些XML提供显式覆盖 布局文件中的属性[...]
因此,如果您将按钮放在edittexts的相同布局中,它应该自动管理下一个焦点。
editText
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;
}
});
希望这有帮助!
答案 3 :(得分:1)
如果您只想将按钮集中在完成操作上,首先您必须将按钮 result = es.search(index=self.es_index, doc_type='abc',
body={"query": {"bool":{
"must":[
{"match": {"url": url}},
{"match": {"url": url2}}],
} }})
设置为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"/>
的{{1}}中,点击完成后按下按钮:
EditText