SearchView中onQueryTextSubmit()执行两次的原因和解决办法

在Android应用中,SearchView的onQueryTextSubmit()方法可能因设备差异导致执行两次,造成搜索结果重复。问题源于ACTION_DOWN和ACTION_UP事件,可通过在提交后立即iconify SearchView以清空查询文本,防止额外请求。
摘要由CSDN通过智能技术生成

在ActionBar上使用SearchView进行搜索时,我们一般使用searchview.setOnQueryTextListener()中的两个方法来提交搜索结果。我个人项目的代码如下,对SearchView中如何进行搜索操作不是很熟的同学也可以小小参考下,

sv.setOnQueryTextListener(new OnQueryTextListener(){

			@Override
			public boolean onQueryTextChange(String newText) {
				// TODO Auto-generated method stub
				return true;
			}

			@Override
			public boolean onQueryTextSubmit(String query) {
				list.clear();
				href.clear();
				String str = null;
				try {//encoding Chinese character
					str = new String(query
							.trim().getBytes(), "ISO-8859-1");
					} catch (UnsupportedEncodingException e) {
						e.printStackTrace();
					}
				SearchPost sp = new SearchPost(SEARCH_URL + str);
				new Thread(sp).start(); 
				
				return true;
			}
		});
项目在虚拟机上测试时一切正常,但是在本人的DesireHD上测试时,搜索结果却被显示了两遍(本应是1,2,3,结果是1,2,3,1,2,3,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值