当前位置: 编程技术>移动开发
本页文章导读:
▪Servlet 中文乱码有关问题及解决方案剖析 Servlet 中文乱码问题及剖析
原文地址:http://blog.csdn.net/xiazdong/article/details/7217022乱码分为,请求乱码和响应乱码 其中请求乱码有分为get乱码和post乱码1.响应乱码比如:OutputStream out = respons.........
▪ DatePickerDialog掩藏年月日 DatePickerDialog隐藏年月日
项目中的需求隐藏掉日~ 只保留年和月~直接想起了之前农民伯伯有写过类似的~ 直奔了过去~http://www.cnblogs.com/over140/archive/2011/09/20/2181532.html照猫画虎弄了下 发下了.........
▪ Intent 传送 List 利用Serializable Intent 传递 List 利用Serializable
转载:
http://blog.csdn.net/onerain88/article/details/6562464
可以把list强转成Serializable类型,然后通过putExtras(key, (Serializable)list)方法传递过去,接受的时候用(List<YourO.........
[1]Servlet 中文乱码有关问题及解决方案剖析
来源: 互联网 发布时间: 2014-02-18
Servlet 中文乱码问题及剖析
原文地址:http://blog.csdn.net/xiazdong/article/details/7217022
乱码分为,请求乱码和响应乱码 其中请求乱码有分为get乱码和post乱码
1.响应乱码
比如:
OutputStream out = response.getOutputStream();
out.write(String );
输出中文时可能会出现乱码;
输出乱码的问题是程序用UTF-8编码,而浏览器用GB2312解码,因此会出现乱码;
解决:
添加
response.setCharacterEncoding("UTF-8");
目的是用于response.getWriter()输出的字符流的乱码问题,如果是response.getOutputStream()是不需要此种的;因为这句话的意思是为了将response对象中的数据以UTF-8解码后发向浏览器;
respnse.setHeader("content-type","text/html;charset=UTF-8");
目的是为了控制浏览器的行为,即控制浏览器用UTF-8进行解码;
等价于<meta http-equiv="content-type" content="text/html"/>
2.请求乱码
get乱码:
new String(request.getParameter("pointName").getBytes("ISO-8859-1"),"UTF-8");
get乱码还可以更改tomcat编码方式来解决 设置server.xml中connection节点中的URIEncoding="UTF-8"
post乱码:
request.setCharacterEncoding("UTF-8");
原文地址:http://blog.csdn.net/xiazdong/article/details/7217022
乱码分为,请求乱码和响应乱码 其中请求乱码有分为get乱码和post乱码
1.响应乱码
比如:
OutputStream out = response.getOutputStream();
out.write(String );
输出中文时可能会出现乱码;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { OutputStream out = response.getOutputStream(); String data = "博客"; out.write(data.getBytes("UTF-8")); }
输出乱码的问题是程序用UTF-8编码,而浏览器用GB2312解码,因此会出现乱码;
解决:
添加
response.setCharacterEncoding("UTF-8");
目的是用于response.getWriter()输出的字符流的乱码问题,如果是response.getOutputStream()是不需要此种的;因为这句话的意思是为了将response对象中的数据以UTF-8解码后发向浏览器;
respnse.setHeader("content-type","text/html;charset=UTF-8");
目的是为了控制浏览器的行为,即控制浏览器用UTF-8进行解码;
等价于<meta http-equiv="content-type" content="text/html"/>
2.请求乱码
get乱码:
new String(request.getParameter("pointName").getBytes("ISO-8859-1"),"UTF-8");
get乱码还可以更改tomcat编码方式来解决 设置server.xml中connection节点中的URIEncoding="UTF-8"
post乱码:
request.setCharacterEncoding("UTF-8");
[2] DatePickerDialog掩藏年月日
来源: 互联网 发布时间: 2014-02-18
DatePickerDialog隐藏年月日
项目中的需求隐藏掉日~ 只保留年和月~
直接想起了之前农民伯伯有写过类似的~ 直奔了过去~
http://www.cnblogs.com/over140/archive/2011/09/20/2181532.html
照猫画虎弄了下 发下了些问题~
首先是那个findDialogPicker老是返回空,后来想,应该先show出来再去find吧~
一实验果然~所以在这里给各位提个醒.
伯伯用这句来隐藏控件
很明显这个不能通用,修改下日期显示格式,这里面的第一个不是固定的,有可能是年,有可能是月,也有可能是日,而且貌似4.0又多了一层
后来网上又找到了一个哥们用反射取得DatePicker里面的所要的NumberPicker
http://liujunhg.iteye.com/blog/1700357
通过反射得到指定的NumberPicker控件然后,想gone哪个就gone哪个~ 哈喇子流了一地
发现2.2的系统上可以,4.0上面filedNotFoundException
去源码里面溜达了一圈发现名字变了,2.2上 ‘日’的NumberPicker叫mDayPicker而4.0上叫mDaySpinner,所以4.0上才找不到这个field
好吧,苯方法 来个‘或’就完事了,google要是再改,我再或~
好了大功告成~ 做了个优化的工具类~可以随便gone掉年月日~
MyDatePickerDialog继承自DatePickerDialog,之前你怎么用,现在还怎么用
那三个boolean分别对应年月日是否隐藏~
好了上传测试工程~有好事记得想着点我~
项目中的需求隐藏掉日~ 只保留年和月~
直接想起了之前农民伯伯有写过类似的~ 直奔了过去~
http://www.cnblogs.com/over140/archive/2011/09/20/2181532.html
照猫画虎弄了下 发下了些问题~
首先是那个findDialogPicker老是返回空,后来想,应该先show出来再去find吧~
一实验果然~所以在这里给各位提个醒.
伯伯用这句来隐藏控件
((ViewGroup) datePicker.getChildAt(0)).getChildAt(0).setVisibility(View.GONE);
很明显这个不能通用,修改下日期显示格式,这里面的第一个不是固定的,有可能是年,有可能是月,也有可能是日,而且貌似4.0又多了一层
后来网上又找到了一个哥们用反射取得DatePicker里面的所要的NumberPicker
http://liujunhg.iteye.com/blog/1700357
通过反射得到指定的NumberPicker控件然后,想gone哪个就gone哪个~ 哈喇子流了一地
发现2.2的系统上可以,4.0上面filedNotFoundException
去源码里面溜达了一圈发现名字变了,2.2上 ‘日’的NumberPicker叫mDayPicker而4.0上叫mDaySpinner,所以4.0上才找不到这个field
好吧,苯方法 来个‘或’就完事了,google要是再改,我再或~
Class pickerClass = datePicker.getClass(); Field[] fields = pickerClass.getDeclaredFields(); for (Field field : fields) { String fieldName = field.getName(); if ("mDayPicker".equals(fieldName) || "mDaySpinner".equals(fieldName)) { field.setAccessible(true); View dayView = (View) field.get(datePicker); dayView.setVisibility(View.GONE); break; } }
好了大功告成~ 做了个优化的工具类~可以随便gone掉年月日~
MyDatePickerDialog mdpd = new MyDatePickerDialog(this, null, mYear, mMonth, mDay); mdpd.hideWhich(true, false, false); mdpd.show();
MyDatePickerDialog继承自DatePickerDialog,之前你怎么用,现在还怎么用
那三个boolean分别对应年月日是否隐藏~
好了上传测试工程~有好事记得想着点我~
[3] Intent 传送 List 利用Serializable
来源: 互联网 发布时间: 2014-02-18
Intent 传递 List 利用Serializable
转载:
http://blog.csdn.net/onerain88/article/details/6562464
可以把list强转成Serializable类型,然后通过putExtras(key, (Serializable)list)方法传递过去,接受的时候用(List<YourObject>) getIntent().getSerializable(key)就可以接受到List<YourObject>数据了
但是最重要的一点是:你的YourObject类必须要实现Serializable接口,切记切记,不然会报错,运行时异常(与parcel相关)
总结:保证你自己定义的类实现了Serializable接口,然后传递list的时候强转成Serializable类型,接受的时候再转换回来就可以了!
public class Content implements Serializable{ String idString ; String name ; public String getIdString() { return idString; } public void setIdString(String idString) { this.idString = idString; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
list = new ArrayList<Content>(); Content content = new Content(); content.setIdString("123456"); content.setName("namenamenae"); list.add(content); list.add(content); list.add(content); list.add(content); Button button = (Button)findViewById(R.id.button1); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(IntentListArrayActivity.this,SecondActivity.class); intent.putExtra("content", (Serializable)list); startActivity(intent); } });
List<Content> list = (List<Content>)this.getIntent().getSerializableExtra("content"); for(int i=0;i<list.size();i++){ Content content = list.get(i); Log.d("test", "_______" + content.getIdString() + "|" + content.getName()); }
最新技术文章: