Android tips

5 篇文章 0 订阅

【1】web 服务器返回的数据需以xml或Jason格式,如果直接String读取的话编码不对,equals()无法使用。


【2 ArrayList.add()操作覆盖前面数据】

先看代码:

Board board = new Board();
         List<Board > boardList = new ArrayList<Board >();
        
         XmlPullParserFactory factory = XmlPullParserFactory.newInstance ();
         XmlPullParser xmlPullParser = factory.newPullParser();
        xmlPullParser .setInput( new StringReader(xmlData ));
         int eventType = xmlPullParser.getEventType();
        
         String date = "";
         int num = 0;;
         String code = "";
         while(eventType != XmlPullParser.END_DOCUMENT ){
             String nodeName = xmlPullParser.getName();
             switch(eventType ){
             case XmlPullParser .START_TAG:{
                 if("date" .equals( nodeName)){
                    board.getDate(xmlPullParser.nextText());
                 }else if("num" .equals( nodeName)){
                    board.getNum(Integer.parseInt (xmlPullParser. nextText()));
                 }else if("code" .equals( nodeName)){
                    board.getCode(xmlPullParser.nextText());
                 }
                 break;
             }
             case XmlPullParser .END_TAG:{
                 if(user .equals( nodeName)){
                    boardList .add( board);
                     Log.i ("TAG", "add list:"+board. getDate());
                 }
                 break;
             }
             default:
                 break;
             }
            eventType = xmlPullParser. next();
         }


在上面的代码中,先给board对象的每个元素赋值,然后用add(board)将对象添加到list中。

结果显示,boardList中的每个元素都被最后一个元素覆盖,即每个元素的值都是最后一个元素。

这是因为,add( )方法添加的是对象的引用,每次都更新了这个引用的值,当然list里面的值都一样的。

正确的做法是在每个循环中都new 一个新的board,再对它赋值。

【3】调用系统相册打开指定目录的文件

Intent intent = new Intent(Intent .ACTION_VIEW);
intent .setDataAndType( Uri.parse ("file://"+ board.getSystemPath ()), "image/*" );
startActivity(intent );

【4】Android5.1系统上报Package Not Found, OpenCV library package was not found

原因,opencv manager 2.4.9版本太旧,不支持android5.1

换成opencv manager 2..4.11就可以了。

程序里面的opencv库仍然用2.4.9也没问题。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值