如何使编辑文本接受格式的输入
4digitnumber-4dignumber-4dignumber-4dignumber
Run Code Online (Sandbox Code Playgroud)
代码
text.addTextChangedListener(new TextWatcher() {
int len = 0;
String string ;
@Override
public void afterTextChanged(Editable s) {
text.setOnKeyListener(new OnKeyListener()
{ public boolean onKey(View v, int keyCode, KeyEvent event)
{
if (keyCode == KeyEvent.KEYCODE_DEL)
{
}
else{
string = text.getText().toString();
len = string.length()+1;
if(len%5==0){text.append("-");}
}
return false; } });
}
});
Run Code Online (Sandbox Code Playgroud)
添加时工作正常,但删除或编辑会导致问题.
有没有办法在按钮单击时以编程方式启动与文本视图关联的上下文操作栏?它应该包含复制/全选的默认选项.基本上,我想在我的文本视图中显示选择句柄,并在按钮单击(而不是长按/双击)中显示操作栏中的android默认复制/全选选项.
到目前为止我尝试过:尝试使用setCustomActionModeCallback()api,但问题是,用户需要长按/双击文本视图才能显示CAB.尝试使用startActionMode()api,但找不到保留默认项的方法..它只是打开一个新的空CAB ..我知道,我可以添加我的自定义副本 - 选择所有代码并使用这个空的CAB,但是我想使用默认的Android提供的,而不是自己管理它.
编辑; 我不能使用EditText.视图只需要是TextView,长按将被禁用.我通过将TextView设置为可选来执行上述所有更改
android textview android-edittext android-actionbar contextual-action-bar
我正在使用TextView的autoLink ="All"功能来链接TextView中的所有网址和电话号码.
我面临的问题是,在模拟器上,某些号码被识别为电话号码并且可以点击.在真实设备上,这些数字不会被识别为电话号码且无法点击.
如果TextView包含数字163111,则在模拟器上可以单击它.Clickng将用户带到拨号器.但是在Nexus 7上,这个号码是不可点击的.我看了一下Linkify.addLinks()方法,我认为这可以解释这种行为,但未能找到解释.
有人遇到过这个问题吗?
这背后可能是什么原因?