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);
2014/9/26
问题:想让应用按home键后退出程序 点击应用重新进入
解: 在AndroidMainfest.xml将你得activity的启动方式launchMode设置为singtask就可以了