当前位置:  编程技术>移动开发
本页文章导读:
    ▪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 );
输出中文时可能会出现乱码;
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吧~

一实验果然~所以在这里给各位提个醒.

伯伯用这句来隐藏控件

((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());
		 }

 


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3