Android开发中的小技巧

本文仅仅为个人开发中容易遗忘的一些知识点,某些省略地方看不懂的请原谅或绕过!CSDN如有隐藏功能,作为笔记的部分是会主动隐藏的,不希望误导某些人,请留心此标记

Android eclipse UI设计和xml切换 快捷键

  • 切换AndroidUI 视图 和xml 视图
    alt + pageUp
    alt + pageDown

  • 切换 代码之间 打开的文件
    ctrl+ pageUp
    ctrl+ pageDown

Android Junit 测试

  1. 测试方法必须 test开头
  2. 点击 –>方法名 —>右击 Android junit测试
  3. Gson 把 一个json 字符串 转换为一个java 对象
    String jsonStr = doGet(msg);
    Gson gson = new Gson();
    Result result = gson.fromJson(jsonStr,Result.class); // Result.class bean对象

智能小慕 机器人

  • 使用 了枚举类型,Adapter返回 ChatMessage时候,比平时多重写了
    两个方法 getItemViewType(int position); 和 getViewTypeCount();//用了两个item布局
    且为了 listView的缓存效率 ,用到了ViewHolder(普通类 )
  • listView的缓存效率
  • listView多布局的使用
  • 第三方Api的调用
 private final class ViewHolder{
    TextView mDate;
    TextView mMsg ;
}

public View getView(int position,View convertView,ViewGroup parent){
    ChatMessage charMessage = mlist.get(position);
    ViewHolder viewHolder = null;
    if(convertView == null){
        if(getItemViewType(position) == 0 ){
            convertView = inflater.inflate(R.layout.item_from_msg,parent,false);
            // 设置 ViewHolder 的引用执行 convertView的各个View 
            viewHolder = new ViewHolder();
            viewHolder.mDate = (TextView) convertView.findViewById(R.id.id_item_from_msg_date);
            viewHolder.mMsg = (TextView) convertView.findViewById(R.id.id_item_from_msg_info);

        }else{
            ...............

        }
        convertView.setTag(viewHolder);  // 存储 一下 ViewHolder
    }else{
        viewHolder = (ViewHolder) convertView.getTag();  //取出ViewHolder
    }
    //设置数据 
    viewHolder.mDate.setText(charMessage.getDate());
    viewHolder.mMsg.setText(charMessage.getMsg());
    return convertView;
}

初始化欢迎数据,(即先设置 1 个listView数据 )

消息传送和更新UI

    onclick(){

    ... //发送:  这里也需要跟新UI和 通知数据变化 
    ChatMessage fromMessage = HttpUtils.sendMessage(toMsg);
    Message msg = Message.obtain();
    msg.obj = fromMessage;
    handler.sendMessage(msg);
}

处理 消息

    ChatMessage charMessage = msg.obj;
    list.add(fromMessage);
    adapter.notifyDataSetChanged();
}

HttpUrlConnection 小说明

httpUrlConnection.setDoOutput(true);以后就可以使用conn.getOutputStream().write()
httpUrlConnection.setDoInput(true);以后就可以使用conn.getInputStream().read();

get请求用不到conn.getOutputStream(),因为参数直接追加在地址后面,因此默认是false。
post请求(比如:文件上传)需要往服务区传输大量的数据,这些数据是放在http的body里面的,因此需要在建立连接以后,往服务端写数据。

因为总是使用conn.getInputStream()获取服务端的响应,因此默认值是true。

java.io.BufferedInputStream.available() 方法返回从输入流中读取不受阻塞,输入流方法的下一次调用的剩余字节数。

下面的示例演示java.io.BufferedInputStream.available()方法的用法。

package com.yiibai;

import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

public class BufferedInputStreamDemo {
   public static void main(String[] args) throws Exception {

      InputStream inStream = null;
      BufferedInputStream bis = null;

      try{
         // open input stream test.txt for reading purpose.
         inStream = new FileInputStream("c:/test.txt");

         // input stream is converted to buffered input stream
         bis = new BufferedInputStream(inStream);      

         // read until a single byte is available
         while( bis.available() > 0 )
         {
            // get the number of bytes available
            Integer nBytes = bis.available();
            System.out.println("Available bytes = " + nBytes );

            // read next available character
            char ch =  (char)bis.read();

            // print the read character.
            System.out.println("The character read = " + ch );
         }
      }catch(Exception e){
         e.printStackTrace();
      }finally{

         // releases any system resources associated with the stream
         if(inStream!=null)
            inStream.close();
         if(bis!=null)
            bis.close();
      }
   }
}
假设有一个文本文件c:/ test.txt,它具有以下内容。该文件将被用作输入我们的示例程序:



ABCDE 
编译和运行上面的程序,这将产生以下结果:

Available bytes = 5
The character read = A
Available bytes = 4
The character read = B
Available bytes = 3
The character read = C
Available bytes = 2
The character read = D
Available bytes = 1
The character read = E

htmlUnit page.save(new File(“file”));

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值