我阅读了关于如何设置要聚焦的对象的问题,但我似乎无法找到任何我想要做的答案。如何强制重点编辑文本
使用焦点监听我也做了以下内容:
Ehour.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View arg0, boolean arg1) {
// TODO Auto-generated method stub
if (!arg1) {
if (Ehour.getText().length()<=0) {
Toast.makeText(getApplicationContext(), "No Hour Entered", Toast.LENGTH_LONG).show();
Calendar nohour = Calendar.getInstance();
Ehour.setText(numberformatter(nohour.get(Calendar.HOUR_OF_DAY)));
Ehour.setFocusable(true);
Ehour.requestFocus();
}
}
}});
我曾尝试建议从如下职位:
我看到这篇文章,但使用这些建议也似乎不工作: How to set focus on a view when a layout is created and displayed?
我的目标是,当编辑文本焦点丢失时,如果给定的条目无效,我需要回到它。
此外按照由Bill莫特给出的建议我也尝试:
Ehour.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View arg0, boolean arg1) {
// TODO Auto-generated method stub
if (!arg1) {
if (Ehour.getText().length()<=0) {
Toast.makeText(getApplicationContext(), "No Hour Entered", Toast.LENGTH_LONG).show();
Calendar nohour = Calendar.getInstance();
Ehour.setText(numberformatter(nohour.get(Calendar.HOUR_OF_DAY)));
((EditText)arg0).requestFocus();
}
}
}});
**编辑** 我连requestFocus()方法之前加入下面的行:
((EditText)arg0).setFocusable(true);
***编辑****
从这篇文章中尝试:Stop EditText from gaining focus at Activity startup
以下变化: 。在第一种布局标头的布局我说:
android:id="@+id/enterdata"
android:descendantFocusability="beforeDescendants"
android:focusableInTouchMode="true"
然后在OnChangeFocusListener我这样做:
Ehour.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View arg0, boolean arg1) {
// TODO Auto-generated method stub
if (!arg1) {
if (((EditText)arg0).getText().length()<=0) {
Toast.makeText(getApplicationContext(), "No Hour Entered", Toast.LENGTH_LONG).show();
Calendar nohour = Calendar.getInstance();
((EditText)arg0).setText(numberformatter(nohour.get(Calendar.HOUR_OF_DAY)));
findViewById(R.id.enterdata).requestFocus();
((EditText)arg0).setFocusable(true);
((EditText)arg0).setFocusableInTouchMode(true);
((EditText)arg0).requestFocus();
}
}
}});
不过我还是像以前一样获得相同的行为,焦点转到的编辑文本仍然保持这种状态,但我希望焦点转到的编辑文本看上去很有针对性,但它似乎无法用作好像仍在等待聚焦。
***编辑****下面
代码按计算器上哪里谁问的问题用户遇到同样的问题,因为我发现最近的文章:
Ehour.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View arg0, boolean arg1) {
// TODO Auto-generated method stub
if (!arg1) {
if (((EditText)arg0).getText().length()<=0) {
Calendar nohour = Calendar.getInstance();
((EditText)arg0).setText(numberformatter(nohour.get(Calendar.HOUR_OF_DAY)));
if (((EditText)arg0).requestFocus()) {
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
Emin.clearFocus();
Toast.makeText(getApplicationContext(), "No Hour Entered", Toast.LENGTH_LONG).show();
}
}
}
}});
看这个帖子:HTTP://计算器。com/questions/1555109/stop-edittext-from-gaining-focus-at-activity-startup我尝试了我将添加到我的问题的答案 – TimCS 2013-02-10 09:10:26
我甚至试图硬编码所有编辑文本框以清除焦点并将setFocusable和setFocusableInTouchMode设置为false,但行为仍然相同,它看起来像编辑文本我希望焦点聚焦,但任何键入都会在用户将移动到的编辑文本中结束!!!!!帮帮我!!!! – TimCS 2013-02-10 10:36:02
它出现在这篇文章中:http://stackoverflow.com/questions/14327412/set-focus-on-edittext?rq = 1用户有同样的问题,它看起来并没有解决,但我要去尝试在这里的建议,看看他们是否为我工作 – TimCS 2013-02-10 15:27:15