找到两个解决方案-请参阅选定的答案
当用户单击EditText的某个区域时,我想弹出一个对话框。我使用onClick捕捉点击。这部分起作用:用户第一次轻触EditText时,软键盘弹出,对话框没有弹出。随后轻触会弹出键盘,然后弹出对话框(键盘消失)。
我怀疑这与EditText获得焦点有关。
这里有一个代码片段:
public class PrefixEditText extends EditText implements TextWatcher, OnClickListener
{
public PrefixEditText (Context context)
{
super (context);
html" target="_blank">setOnClickListener (this);
}
@Override
public void onClick(View v)
{
int selStart = getSelectionStart();
if (selStart < some_particular_pos)
bring_up_dialog();
}
}
重要提示:我不想完全禁用正常的EditText行为。我希望用户能够进行区域选择(用于复制
更新我发现了更多。如果EditText正在获得焦点,则会调用onFocusChange,而onClick不会。如果它已经有焦点,则调用onClick,而onFocusChange没有。
其次,可以通过调用
setInputType (InputType.TYPE_NULL);
在onFocusChange中这样做是可行的——键盘永远不会出现。在onClick中这样做(假设键盘在单击之前被隐藏)显然为时已晚-键盘出现然后消失。
下一个尝试的想法是在onTouch期间隐藏键盘。然而,我害怕弄乱这些代码——似乎我所知道的任何东西对于EditText的未来版本都是非常脆弱的。
对此有什么想法吗?
试试这个,如果它可以帮助u.first时间,编辑文本将表现为正常的编辑文本,条件是你可以根据需要显示对话框
EditText editText;
mTim_edittext.setOnFocusChangeListener(new OnFocusChangeListener() {
public void onFocusChange(View v, boolean hasFocus) {
if(!hasFocus){
//statement
if(condition){
AlertDialog diaBox = Utils.showErrorDialogBox( "Term in Months Cannot be 0", context);
diaBox.show();
}
}
}
});
尝试通过onClick将捕获更改为onTouch
this.editText.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
//dialogue popup
}
return false;
}
});
也许这样行得通
EditText e = new EditText(context);
e.setOnFocusChangeListener(new OnFocusChangeListener() {
public void onFocusChange(View v, boolean hasFocus) {
// TODO Auto-generated method stub
if(hasFocus)
{
//dialogue popup
}
}
});
或者你可以使用e.hasFocus() 然后使用e.setFocusable(false) 使其不聚焦
/////////////// 我的代码
e.setInputType(InputType.TYPE_NULL);
e.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
AlertDialog.Builder sa = new Builder(ctx);
sa.create().setOnDismissListener(new OnDismissListener() {
public void onDismiss(DialogInterface dialog) {
// TODO Auto-generated method stub
e.setInputType(InputType.TYPE_CLASS_TEXT);
}
});
sa.show();
}
});
当单击时,我使用这个问题来获取。请注意,我正在将代码放在一个片段中。我改变了以下内容: 在settime.java中添加了:Context 它告诉我:构造函数没有定义。 我试着把它改成: 当试图运行应用程序时,我会遇到以下错误 appoinfragment.java settime.java
我想显示datepicker弹出窗口。我找到了一些例子,但我没有得到正确的理解。我有一个edittext,我希望当我单击edittext时,datepicker对话框应该弹出,在设置日期后,日期应该以DD/MM/YYYY格式显示在edittext中。请提供给我样本代码或良好的链接。
我已经有了一个DatePicker,当用户单击EditText字段时,它会弹出 出于某种原因,当我把它输入到Android Studio时,“显示对话框”被删除了。 有人能告诉我哪里出了问题吗?还是必须使用自定义的DialogFragment?
我想显示日期选择器弹出窗口。我找到了一些例子,但我没有正确理解。我有一个编辑文本,我点击编辑文本,会弹出日期选择器对话框,设置日期后,日期会以dd/mm/yyyy格式以片段形式显示在编辑文本中。请提供我的样本代码或良好的链接。
我想知道,在运行selenium场景时,我们是否可以做一些类似下面的事情,这需要用户的交互才能继续。比如等他上传一些图片.. > 直到该步骤,硒弹出一个对话框说:请完成某事,然后单击确定按钮继续。 当用户在网页上完成操作后,单击“确定”,则场景的事务正在向前移动。否则,停止这一步。 对于第一个子弹,我想到了下面的命令: 命令: 目标: 提前感谢!
我不知道为什么youtue_title和youtube_description是空的???在我添加文本到这个编辑文本???我一直这样做为什么现在它不工作??? 有问题吗,因为它在弹出窗口中?