android 问题 总结

2014/7/8

当一个activity中有AlertDialog控件时,它的点击监听事件会和其他view(如popupwindow)的点击监听事件造成冲突。

---------------------------------------------------------------

2014/7/12

今天做支付宝集成的时候,要引入alipay_lib,但是引进工程的时候,发现报错

Found 2 versions of android-support-v4.jar in the dependency list,
but not all the versions are identical (check is based on SHA-1 only at this time).
 All versions of the libraries must be the same at this time.

这是因为同时引入多个lib  然后这些lib都要用到android-support-v4.jar  android-support-v4.jar 版本不一致引起的冲突

解决办法:删掉lib中的android-support-v4.jar  clean工程


-----------------------------------------------------------------

2014/7/12

写了一段代码 在线程中调用传过来的activity对象发现报错

代码如下

private String startPay(Activity activity,Order order){
		String info = getNewOrderInfo(order);
		String sign = Rsa.sign(info, Keys.PRIVATE);
		sign = URLEncoder.encode(sign);
		info += "&sign=\"" + sign + "\"&" + getSignType();
		final String orderInfo = info;
		new Thread() {
			public void run() {
				AliPay alipay = new AliPay(activity, mhandler);
				
				//设置为沙箱模式,不设置默认为线上环境
				//alipay.setSandBox(true);
				String result = alipay.pay(orderInfo);
				Message msg = new Message();
				msg.obj = result;
				mhandler.sendMessage(msg);
			}
		}.start();
		return payResult;
	}

发现AliPay alipay = new AliPay( activity, mhandler);这里报错

Cannot refer to a non-final variable activity inside an inner class defined in a different method

网上查资料得知,在内部类中调用参数要加final

相关资料


局部匿名类在源代码编译后也是要生成对应的class文件的(一般会是A$1.class这种形式的文件),那么这个二进制文件是独立于其外围类(A.class)的,就是说它无法知道A类中方法的变量。但是A$1.class又确实要访问A类对应方法的局部变量的值。。。怎么办呢?于是干脆就要求“匿名内部类调用的方法内局部变量必须为final”,这样A$1.class访问A类方法局部变量部分就直接用常量来表示。

----------------------------------------------------------------------------


2014/7/15

历史搜索记录数据保存在sharedperferences中  getAll()全部取出来成一个Map

用迭代器遍历hashmap

private ArrayList<String> getHisData() {
		// TODO Auto-generated method stub
		ArrayList<String> hisContent=new ArrayList<String>();
		Map<String,String> map=new HashMap<String, String>();
		map=(Map<String, String>) sharedPreferences.getAll();
		Iterator iter = map.entrySet().iterator();
		while (iter.hasNext()) {
			Map.Entry entry = (Map.Entry) iter.next();
			String val = entry.getValue().toString();
			hisContent.add(val);
			}
		return hisContent;
	}



2014/7/20

webview载入有html标签的字符串  loaddata()时出现乱码

 //得到WebView组件
       WebView bodyHtml=(WebView)envelope.findViewById(R.id.mail_open_html);
        //能够的调用JavaScript代码
        bodyHtml.getSettings().setJavaScriptEnabled(true);
bodyHtml.getSettings().setDefaultTextEncodingName("utf-8");
        //加载HTML字符串进行显示
        bodyHtml.loadData("<html>这是一段HTML的代码</html>",
     "text/html;>charset=utf-8", "utf-8");
 


2014/8/9

需要获取double类型数据小数点后两位四舍五入处理  仍然保存为double类型

double f = 111231.5585;
BigDecimal bg = new BigDecimal(f);
double f1 = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println(f1);


参考链接: http://my.oschina.net/xiangtao/blog/17078



2014/9/26

问题:想让应用按home键后退出程序  点击应用重新进入

解: 在AndroidMainfest.xml将你得activity的启动方式launchMode设置为singtask就可以了


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值