webView的使用及其乱码问题的解决方案
2012-08-07 11:02
453 查看
今天在做即时通讯的时候由于要把消息文本的格式显示出来,所以我采用了使用webView的方法。那么由于SimpleAdapter无法自动把数据绑定在webView上所以我需要自己定义Adapter,难点也就在这里。我在这里把自己的adapter贴出来:
/**
* 自定义List的Adapter
*/
class RecordAdapter extends BaseAdapter{
private Context context;
private ArrayList<HashMap<String,Object>> listitem;
public RecordAdapter(Context context,ArrayList<HashMap<String, Object>> listitem){
this.context = context;
this.listitem = listitem;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return listItem.size();
}
@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return listItem.get(arg0);
}
@Override
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return arg0;
}
@Override
public View getView(int arg0, View arg1, ViewGroup arg2) {
// TODO Auto-generated method stub
//取出数据
String content = listitem.get(arg0).get("content").toString();
String time = listitem.get(arg0).get("time").toString();
View tem;
if(arg1 == null){
RelativeLayout temRl = (RelativeLayout)View.inflate(context, R.layout.talkrecorditem, null);
WebView wView = (WebView)temRl.findViewById(R.id.itemcontent);
wView.getSettings().setDefaultTextEncodingName("utf-8");
TextView tView = (TextView)temRl.findViewById(R.id.itemtime);
wView.loadData(content, "text/html", null);
tView.setText(time);
tem = temRl;
}else{
tem = arg1;
WebView wView = (WebView)tem.findViewById(R.id.itemcontent);
TextView tView = (TextView)tem.findViewById(R.id.itemtime);
wView.loadData(content, "text/html", null);
tView.setText(time);
}
return tem;
}
WebView的默认编码是“Latin-1” 所以这样在显示中文的时候会出现乱码的现象。所以需要对webVIew的默认编码进行设定,
wView.getSettings().setDefaultTextEncodingName("utf-8");
其实这句话的作用就相当于网页的元信息,相当与一个meta。
/**
* 自定义List的Adapter
*/
class RecordAdapter extends BaseAdapter{
private Context context;
private ArrayList<HashMap<String,Object>> listitem;
public RecordAdapter(Context context,ArrayList<HashMap<String, Object>> listitem){
this.context = context;
this.listitem = listitem;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return listItem.size();
}
@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return listItem.get(arg0);
}
@Override
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return arg0;
}
@Override
public View getView(int arg0, View arg1, ViewGroup arg2) {
// TODO Auto-generated method stub
//取出数据
String content = listitem.get(arg0).get("content").toString();
String time = listitem.get(arg0).get("time").toString();
View tem;
if(arg1 == null){
RelativeLayout temRl = (RelativeLayout)View.inflate(context, R.layout.talkrecorditem, null);
WebView wView = (WebView)temRl.findViewById(R.id.itemcontent);
wView.getSettings().setDefaultTextEncodingName("utf-8");
TextView tView = (TextView)temRl.findViewById(R.id.itemtime);
wView.loadData(content, "text/html", null);
tView.setText(time);
tem = temRl;
}else{
tem = arg1;
WebView wView = (WebView)tem.findViewById(R.id.itemcontent);
TextView tView = (TextView)tem.findViewById(R.id.itemtime);
wView.loadData(content, "text/html", null);
tView.setText(time);
}
return tem;
}
WebView的默认编码是“Latin-1” 所以这样在显示中文的时候会出现乱码的现象。所以需要对webVIew的默认编码进行设定,
wView.getSettings().setDefaultTextEncodingName("utf-8");
其实这句话的作用就相当于网页的元信息,相当与一个meta。
相关文章推荐
- 使用WebStorm开发web前端 网页中文乱码问题的解决方案
- Android WebView中使用loadData时出现的乱码问题解决办法
- 使用WebStorm开发web前端 网页中文乱码问题的解决方案
- Android中使用WebView.loadData()中文乱码问题
- 使用WebView.load(data,"text/html", "utf-8")加载显示乱码问题分析
- IOS 使用 WKWebView 加载本地的JS和CSS文件出现乱码问题
- android webView 加载HTML代码使用loadData方法中文乱码问题
- IOS 使用 WKWebView 加载本地的JS和CSS文件出现乱码问题
- 关于WebView的总结2---使用方法及常见问题和解决方案汇总
- Android---WebView显示Html乱码问题
- WebView重定向问题的解决方案
- Android中webview在使用过程中会遇到的一些问题
- 解决Android使用WebView时无法输入数字和字母的问题
- Android 的WebView使用CookieManager崩溃的问题
- 关于web工程乱码问题-解决方案及编码习惯养成
- Android WebView常见问题及解决方案汇总
- javaWeb -myEclipse源代码中文乱码问题解决方案
- 解决Android中使用webview加载音视频返回后还有声音问题