listview添加尾部布局中有edittext,edittext调不出剪贴板弹窗

之前我没有遇到这个问题,因为剪贴板是系统自带的,一般不会出现,输入框调不出剪贴板的弹窗
但是当listview添加尾部布局中有edittext时,edittext就调不出剪贴板弹窗,忽然我就搞不懂了!
这个问题我是解决了的,我的解决过程:

1 首先确定不是因为焦点的问题
因为输入框是可以点击,可以正常输入的

2 listview的长按事件和edittext长按事件冲突,禁止listview长按事件没用
我给listview中写了长按监听事件,然后,长按输入框,发现竟然走了listview长按监听事件,原来是,尾部布局是listview的一个item,长按输入框的同时,就是在长按listview的item,所以有一个办法就是,禁用listview的长按监听;但是我长了很多资料,都没有一个详细有用的;

3 设置listview焦点,是否可用都为false,没用
没有办法禁用listview的长按监听,可以尝试给listview焦点,可用性设置为false,设置为不可用,经测试以不行!

4 先拿剪贴版上值,赋值给edittext,在给edittext设空,调出剪贴弹窗(剪贴版上不能为空,也就是不能没有赋值内容),解决
最后,我无计可施,只能用最low的办法,代码如下;
private int PASTE_FIRST=0;
listview.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
ClipboardManager clipboard =
(ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);//系统剪贴板管理
CharSequence text = clipboard.getText();//得到剪贴板文件管理器
if (PASTE_FIRST == 1 && text == null)
PASTE_FIRST = 0;
if (PASTE_FIRST == 0) {//首次设置后,不用在给edittext设为空,也能调出剪贴板弹窗
if (text == null)
ToastUtils.showToast(this, “粘贴内容不能为空!”);
else {
edittext.setText(text.toString());
edittext.setText(“”);
PASTE_FIRST = 1;
}
}
return false;
}
});

5 自己写一个弹窗,替代系统的剪贴板(备选)

6 这个坑爹的问题,是系统遗留的bug,真想给谷歌打个电话,或者@谷歌:你他妈的能不能把代码写的好一点!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值