package com.nxt;
import java.io.IOException;
import java.io.InputStream;
import java.math.BigDecimal;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import com.nxt.AsyncImageLoader.ImageCallback;
import android.app.Activity;
import android.app.ActivityManager;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.graphics.Matrix;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.Gravity;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.AbsListView;
import android.widget.AbsListView.OnScrollListener;
import android.widget.HorizontalScrollView;
import android.widget.ImageButton;
import android.widget.LinearLayout.LayoutParams;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.ProgressBar;
import android.widget.RelativeLayout;
import android.widget.ScrollView;
import android.widget.TableLayout;
import android.widget.TableRow;
import android.widget.TextView;
import android.widget.Toast;
public class ViewWeb extends Activity {
//整体的布局是由一个scrollView组成
ScrollView main;
//自身
public static ViewWeb vieweb;
private int lastItem = 0;
LinearLayout loadingLayout;
//ListView的适配器
private listViewAdapter adapter;
private LayoutParams mLayoutParams = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
LayoutInflater LayoutInflater;
LayoutParams FFlayoutParams = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.FILL_PARENT,
LinearLayout.LayoutParams.FILL_PARENT);
TableLayout.LayoutParams tableP=new TableLayout.LayoutParams(TableLayout.LayoutParams.FILL_PARENT,
TableLayout.LayoutParams.WRAP_CONTENT);
LinearLayout.LayoutParams p=new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
TableRow.LayoutParams rowP=new TableRow.LayoutParams(TableRow.LayoutParams.FILL_PARENT,
TableRow.LayoutParams.WRAP_CONTENT);
//显示的listView
ListView listView ;
//得到所有的景点详情
Page [] allPageData;
// //当前页的详情
// Page page;
//一半的URL
String harfUrl;
String city;
String siteid;
String title;
public boolean isLoading;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.website);
vieweb=this;
Intent intent = getIntent();
String strSin=intent.getStringExtra("sign");
int sign=0;
if(strSin!=null){
//得到获取服务器参数的URL
sign=Integer.parseInt(strSin);
}
String url=intent.getStringExtra("url");
city=intent.getStringExtra("name");
siteid=intent.getStringExtra("sited");
title=intent.getStringExtra("title");
if(url==null || sign==0){
allPageData=FarmerBoolons.farmerboolons.pages;
}else{
//得到所有的
allPageData=DataStore.obtainPages(url,sign);
}
if(allPageData!=null && allPageData.length!=0){
//设置标题
TextView text=(TextView)findViewById(R.id.first);
text.setText(title+"(共"+allPageData[0].getTotal()+"个)");
//总体布局
listView = (ListView) findViewById(R.id.myList);
LinearLayout layout = new LinearLayout(this);
// 设置布局 水平方向
layout.setOrientation(LinearLayout.HORIZONTAL);
//把得到的半个siteid加上
// harfUrl="http://test.365960.com/item.php?act=detail&siteid="+intent.getStringExtra("siteid")+"&channel=nj&";
LayoutInflater = (LayoutInflater) getSystemService(Activity.LAYOUT_INFLATER_SERVICE);//拿到layoout服务
adapter = new listViewAdapter();
listView.setAdapter(adapter);
listView.setVerticalScrollBarEnabled(true);
listView.setBackgroundColor(Color.WHITE);
ImageButton soso=(ImageButton)findViewById(R.id.soso);
soso.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
Intent intent = new Intent(ViewWeb.this, MlcxWebview.class);
intent.putExtra(
"url",
"http://test.365960.com/item.php?act=search&searchsubmit=yes&mobile=ok&searchsort=subject");
startActivity(intent);
// TODO Auto-generated method stub
}
});
//初始化scroll
// main=(ScrollView)findViewById(R.id.scroll);
// main.set(scrollListener);
// LinearLayout layout=(LinearLayout)findViewById(R.id.webView);
//初始化TableLayout
// main=(ListView)findViewById(R.id.scroll);
// table = (TableLayout) findViewById(R.id.table);
// table=new TableLayout(this);
// 设置ListView的页脚layout
//设置适配器
listView.setOnScrollListener(new OnScrollListener() {
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
// TODO Auto-generated method stub
// Log.i(“test” , “Scroll>>>first: ” + firstVisibleItem + “, visible: ” + visibleItemCount + “, total: ” + totalItemCount);
//总共有多少条记录
int total=allPageData.length;
if(total>adapter.count){
lastItem = firstVisibleItem + visibleItemCount-1;
// Log.i(“test” , “Scroll>>>lastItem:” + lastItem);
//显示50条ListItem,即0-49,因为onScroll是在“滑动”执行过之后才触发,所以用adapter.count<=41作条件
int scrolllength=total;
if (adapter.count<=scrolllength) {
if (firstVisibleItem+visibleItemCount==totalItemCount) {
// adapter.count +=5;
// adapter.notifyDataSetChanged();
// listView.setSelection(lastItem);
// int currentPage=adapter.count%5==0?adapter.count/5:(adapter.count/5)+1;
// Toast.makeText(getApplicationContext(), "第"+currentPage+"页", Toast.LENGTH_SHORT).show();
//isLoading用于控制重复加载
if(!isLoading){
new MyTask().execute(null);
}
}
}
}else{
adapter.count=total;
}
}
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
}
});
}else{
Toast.makeText(ViewWeb.this, "对不起没有查找到所需内容", Toast.LENGTH_SHORT).show();
Intent go = new Intent(ViewWeb.this,MlcxMain.class);
go.putExtra("sited",siteid);
go.putExtra("name",city);
startActivity(go);
ViewWeb.this.finish();
}
//显示图片及详情
// loadDetail(start,end);
}
//从网上获取图片
public static Bitmap getHttpBitmap(String url) {
URL myFileUrl = null;
Bitmap bitmap = null;
try {
myFileUrl = new URL(url);
} catch (MalformedURLException e) {
return null;
}
try {
HttpURLConnection conn = (HttpURLConnection) myFileUrl
.openConnection();
conn.setConnectTimeout(0);
conn.setDoInput(true);
conn.connect();
InputStream is = conn.getInputStream();
bitmap = BitmapFactory.decodeStream(is);
is.close();
} catch (IOException e) {
e.printStackTrace();
return null;
}
return bitmap;
}
//设置图片大
protected static Bitmap getScaleImg(Bitmap bm, int newWidth, int newHeight) {
// 图片源
// Bitmap bm = BitmapFactory.decodeStream(getResources()
// .openRawResource(id));
// 获得图片的宽高
int width = bm.getWidth();
int height = bm.getHeight();
// 设置想要的大小
int newWidth1 = newWidth;
int newHeight1 = newHeight;
// 计算缩放比例
float scaleWidth = ((float) newWidth1) / width;
float scaleHeight = ((float) newHeight1) / height;
// 取得想要缩放的matrix参数
Matrix matrix = new Matrix();
matrix.postScale(scaleWidth, scaleHeight);
// 得到新的图片
Bitmap newbm = Bitmap.createBitmap(bm, 0, 0, width, height, matrix,
true);
return newbm;
}
class listViewAdapter extends BaseAdapter {
//一个listView显示的数据数
int count =10; /* starting amount */
//异步加载图片的线程
private AsyncImageLoader imageLoader = new AsyncImageLoader();
@Override
public int getCount() {
return count;
}
@Override
public Object getItem(int pos) {
return pos;
}
@Override
public long getItemId(int pos) {
return pos;
}
//当前的缓存
private Map<Integer, View> viewMap = new HashMap<Integer, View>();
@Override
public View getView(int pos, View v, ViewGroup group) {
//缓存器
View rowView =viewMap.get(pos);
//如果当前没有内容
if(rowView==null){
// System.out.println(v);
TableLayout table=new TableLayout(ViewWeb.this);
TableRow layout=new TableRow(ViewWeb.this);
layout.setOrientation(LinearLayout.HORIZONTAL);
final Page page =allPageData[pos];
if(pos>allPageData.length-1){
pos=allPageData.length-1;
}
//右边的整体布局
View right = LayoutInflater.inflate(R.layout.right, null);
right.setPadding(20, 10, 10, 10);
// final ImageView imageView=(ImageView)right.findViewById(R.id.synjd);
//图片显示单开一个线程
final ImageView imageView=new ImageView(ViewWeb.this);
imageView.setBackgroundResource(R.drawable.wait);
imageView.setPadding(10, 10, 10, 10);
String strImg=page.getImg();
if(strImg!=null){
// if(strImg.indexOf("ima")!=-1){
// strImg="http://365960.com/"+strImg;
// page.setImg(strImg);
// }
imageLoader.loadDrawable(strImg, new ImageCallback() {
public void imageLoaded(Bitmap imageDrawable, String imageUrl) {
imageView.setBackgroundResource(0);
imageView.setImageBitmap(imageDrawable);
imageView.setPadding(10, 10, 10, 10);
page.setBitmap(imageDrawable);
}
});
}
//得到标题
TextView title=(TextView)right.findViewById(R.id.firstTitle);
title.setText(page.getTitle());
//得到环境
TextView hj=(TextView)right.findViewById(R.id.huangjingid);
String target=page.getHj();
String show=isNum(target);
page.setHj(show);
// else{
// String insert= modifyXiaoShu(Double.parseDouble(target.replaceAll("/n", "").trim()));
// page.setHj(insert);
// }
hj.setText(show);
//服务
TextView fw=(TextView)right.findViewById(R.id.fuwuid);
target=page.getHj();
show=isNum(target);
page.setFw(show);
// if(page.getFw()==null || page.getFw().equals("") ){
// page.setFw("0");
// }
// else{
// String insert= modifyXiaoShu(Double.parseDouble(target.replaceAll("/n", "").trim()));
// page.setFw(insert);
// }
fw.setText(isNum(target));
//口味
TextView kw=(TextView)right.findViewById(R.id.kouweiid);
show=isNum(target);
target=page.getKw();
page.setKw(show);
// if(page.getKw()==null || page.getKw().equals("") ){
// page.setKw("0");
// }
// else{
// String insert= modifyXiaoShu(Double.parseDouble(target.replaceAll("/n", "").trim()));
// page.setKw(insert);
// }
kw.setText(isNum(target));
//价格
TextView jg=(TextView)right.findViewById(R.id.jiageid);
target=page.getJg();
show=isNum(target);
page.setJg(show);
// if(page.getJg()==null || page.getJg().equals("") ){
// page.setJg("0");
// }
jg.setText(isNum(target));
// else{
// String insert= modifyXiaoShu(Double.parseDouble(target.replaceAll("/n", "").trim()));
// page.setJg(insert);
// }
//综合得分
TextView zhdf=(TextView)right.findViewById(R.id.zhdfid);
String df=page.getZhdf();
if(df==null || df.equals("")){
try{
df=String.valueOf((Integer.parseInt(page.getJg())+Integer.parseInt(page.getHj())+Integer.parseInt(page.getKw())+Integer.parseInt(page.getFw()))/4);
}catch(Exception e){
df="0";
page.setZhdf(df);
}
}
double score=Double.parseDouble(df)/2;
String strScore=String.valueOf(score);
//1位小数点显示
BigDecimal bd = new BigDecimal(strScore);
bd = bd.setScale(1,BigDecimal.ROUND_HALF_UP);
score=bd.doubleValue();
zhdf.setText(String.valueOf(score));
page.setZhdf(String.valueOf(score));
//判断有几颗完全的星
int fullStar=(int)score/1;
//判断是否有半个的星
boolean hasHarf=false;
if(score%1!=0){
hasHarf=true;
}
//7个ImageView的
int []imageIndex={R.id.image0,R.id.image1,R.id.image2,R.id.image3,R.id.image4};
//放星的那八个ImageView
ImageView imageViews[]=new ImageView[imageIndex.length];
for(int i=0;i<imageViews.length;i++){
imageViews[i]=(ImageView)right.findViewById(imageIndex[i]);
if(i<=fullStar-1){
imageViews[i].setBackgroundResource(R.drawable.star);
}else if(hasHarf && i==fullStar){
imageViews[i].setBackgroundResource(R.drawable.harfstar);
}else{
imageViews[i].setBackgroundResource(R.drawable.nostar);
}
}
//画出一行
layout.addView(imageView, rowP);
layout.addView(right, rowP);
//画出整个表格
table.addView(layout,tableP);
// final String url= harfUrl+"id="+page.getSid()+"&mobile=ok&output=xml";
//把当前的位置传过去
final String index=String.valueOf(pos);
layout.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
//传到详细信息的页面
Intent intent = new Intent(ViewWeb.this,ViewWebDetail.class);
intent.putExtra("index",index);
startActivity(intent);
}
});
//把位置和view都放到缓存里
viewMap.put(pos, table);
return table;
}else{
//如果有的话就直接返回缓存里的
return rowView ;
}
}
}
private class MyTask extends AsyncTask<Void, Void, Void> {
@Override
protected void onPreExecute() {
super.onPreExecute();
isLoading =true;
}
@Override
protected Void doInBackground(Void... params) {
try {
Thread.sleep(1);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
adapter.count += 10;
return null;
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
adapter.notifyDataSetChanged();
listView.setSelection(lastItem);
int currentPage = adapter.count /10;
Toast.makeText(getApplicationContext(), "第" + (currentPage+1) + "页",
Toast.LENGTH_LONG).show();
isLoading = false;
}
}
//修改小数位数
public static String modifyXiaoShu(double score){
java.text.DecimalFormat df =new java.text.DecimalFormat("#.0");
return df.format(score).toString();
}
//判断是否为数字
public static String isNum(String target){
String replace="0";
if(target!=null){
String regStr="\\d+\\.\\d*";
Pattern pattern = Pattern.compile(regStr);
Matcher matcher = pattern.matcher(target);
boolean flag=matcher.find();
if (flag) {
replace = matcher.group();
Double num=Double.valueOf(replace);
if(num==0){
replace="0";
}else{
replace=modifyXiaoShu(num);
}
}else{
regStr="\\d+";
pattern = Pattern.compile(regStr);
matcher = pattern.matcher(target);
if(matcher.find()){
replace = matcher.group();
Double num=Double.valueOf(replace);
if(num==0){
replace="0";
}
}
}
}
return replace;
}
// public boolean onKeyDown(int keyCode, KeyEvent event) {
// if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
//
// if(NearbyMap.byMap!=null){
// Intent intent=new Intent(ViewWeb.this,NearbyMap.byMap.getClass());
// startActivity(intent);
// }else{
// Intent intent=new Intent(ViewWeb.this,MlcxMain.class);
// startActivity(intent);
// }
// return false;
// }
// return false;
// }
}
import java.io.IOException;
import java.io.InputStream;
import java.math.BigDecimal;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import com.nxt.AsyncImageLoader.ImageCallback;
import android.app.Activity;
import android.app.ActivityManager;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.graphics.Matrix;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.Gravity;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.AbsListView;
import android.widget.AbsListView.OnScrollListener;
import android.widget.HorizontalScrollView;
import android.widget.ImageButton;
import android.widget.LinearLayout.LayoutParams;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.ProgressBar;
import android.widget.RelativeLayout;
import android.widget.ScrollView;
import android.widget.TableLayout;
import android.widget.TableRow;
import android.widget.TextView;
import android.widget.Toast;
public class ViewWeb extends Activity {
//整体的布局是由一个scrollView组成
ScrollView main;
//自身
public static ViewWeb vieweb;
private int lastItem = 0;
LinearLayout loadingLayout;
//ListView的适配器
private listViewAdapter adapter;
private LayoutParams mLayoutParams = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
LayoutInflater LayoutInflater;
LayoutParams FFlayoutParams = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.FILL_PARENT,
LinearLayout.LayoutParams.FILL_PARENT);
TableLayout.LayoutParams tableP=new TableLayout.LayoutParams(TableLayout.LayoutParams.FILL_PARENT,
TableLayout.LayoutParams.WRAP_CONTENT);
LinearLayout.LayoutParams p=new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
TableRow.LayoutParams rowP=new TableRow.LayoutParams(TableRow.LayoutParams.FILL_PARENT,
TableRow.LayoutParams.WRAP_CONTENT);
//显示的listView
ListView listView ;
//得到所有的景点详情
Page [] allPageData;
// //当前页的详情
// Page page;
//一半的URL
String harfUrl;
String city;
String siteid;
String title;
public boolean isLoading;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.website);
vieweb=this;
Intent intent = getIntent();
String strSin=intent.getStringExtra("sign");
int sign=0;
if(strSin!=null){
//得到获取服务器参数的URL
sign=Integer.parseInt(strSin);
}
String url=intent.getStringExtra("url");
city=intent.getStringExtra("name");
siteid=intent.getStringExtra("sited");
title=intent.getStringExtra("title");
if(url==null || sign==0){
allPageData=FarmerBoolons.farmerboolons.pages;
}else{
//得到所有的
allPageData=DataStore.obtainPages(url,sign);
}
if(allPageData!=null && allPageData.length!=0){
//设置标题
TextView text=(TextView)findViewById(R.id.first);
text.setText(title+"(共"+allPageData[0].getTotal()+"个)");
//总体布局
listView = (ListView) findViewById(R.id.myList);
LinearLayout layout = new LinearLayout(this);
// 设置布局 水平方向
layout.setOrientation(LinearLayout.HORIZONTAL);
//把得到的半个siteid加上
// harfUrl="http://test.365960.com/item.php?act=detail&siteid="+intent.getStringExtra("siteid")+"&channel=nj&";
LayoutInflater = (LayoutInflater) getSystemService(Activity.LAYOUT_INFLATER_SERVICE);//拿到layoout服务
adapter = new listViewAdapter();
listView.setAdapter(adapter);
listView.setVerticalScrollBarEnabled(true);
listView.setBackgroundColor(Color.WHITE);
ImageButton soso=(ImageButton)findViewById(R.id.soso);
soso.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
Intent intent = new Intent(ViewWeb.this, MlcxWebview.class);
intent.putExtra(
"url",
"http://test.365960.com/item.php?act=search&searchsubmit=yes&mobile=ok&searchsort=subject");
startActivity(intent);
// TODO Auto-generated method stub
}
});
//初始化scroll
// main=(ScrollView)findViewById(R.id.scroll);
// main.set(scrollListener);
// LinearLayout layout=(LinearLayout)findViewById(R.id.webView);
//初始化TableLayout
// main=(ListView)findViewById(R.id.scroll);
// table = (TableLayout) findViewById(R.id.table);
// table=new TableLayout(this);
// 设置ListView的页脚layout
//设置适配器
listView.setOnScrollListener(new OnScrollListener() {
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
// TODO Auto-generated method stub
// Log.i(“test” , “Scroll>>>first: ” + firstVisibleItem + “, visible: ” + visibleItemCount + “, total: ” + totalItemCount);
//总共有多少条记录
int total=allPageData.length;
if(total>adapter.count){
lastItem = firstVisibleItem + visibleItemCount-1;
// Log.i(“test” , “Scroll>>>lastItem:” + lastItem);
//显示50条ListItem,即0-49,因为onScroll是在“滑动”执行过之后才触发,所以用adapter.count<=41作条件
int scrolllength=total;
if (adapter.count<=scrolllength) {
if (firstVisibleItem+visibleItemCount==totalItemCount) {
// adapter.count +=5;
// adapter.notifyDataSetChanged();
// listView.setSelection(lastItem);
// int currentPage=adapter.count%5==0?adapter.count/5:(adapter.count/5)+1;
// Toast.makeText(getApplicationContext(), "第"+currentPage+"页", Toast.LENGTH_SHORT).show();
//isLoading用于控制重复加载
if(!isLoading){
new MyTask().execute(null);
}
}
}
}else{
adapter.count=total;
}
}
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
}
});
}else{
Toast.makeText(ViewWeb.this, "对不起没有查找到所需内容", Toast.LENGTH_SHORT).show();
Intent go = new Intent(ViewWeb.this,MlcxMain.class);
go.putExtra("sited",siteid);
go.putExtra("name",city);
startActivity(go);
ViewWeb.this.finish();
}
//显示图片及详情
// loadDetail(start,end);
}
//从网上获取图片
public static Bitmap getHttpBitmap(String url) {
URL myFileUrl = null;
Bitmap bitmap = null;
try {
myFileUrl = new URL(url);
} catch (MalformedURLException e) {
return null;
}
try {
HttpURLConnection conn = (HttpURLConnection) myFileUrl
.openConnection();
conn.setConnectTimeout(0);
conn.setDoInput(true);
conn.connect();
InputStream is = conn.getInputStream();
bitmap = BitmapFactory.decodeStream(is);
is.close();
} catch (IOException e) {
e.printStackTrace();
return null;
}
return bitmap;
}
//设置图片大
protected static Bitmap getScaleImg(Bitmap bm, int newWidth, int newHeight) {
// 图片源
// Bitmap bm = BitmapFactory.decodeStream(getResources()
// .openRawResource(id));
// 获得图片的宽高
int width = bm.getWidth();
int height = bm.getHeight();
// 设置想要的大小
int newWidth1 = newWidth;
int newHeight1 = newHeight;
// 计算缩放比例
float scaleWidth = ((float) newWidth1) / width;
float scaleHeight = ((float) newHeight1) / height;
// 取得想要缩放的matrix参数
Matrix matrix = new Matrix();
matrix.postScale(scaleWidth, scaleHeight);
// 得到新的图片
Bitmap newbm = Bitmap.createBitmap(bm, 0, 0, width, height, matrix,
true);
return newbm;
}
class listViewAdapter extends BaseAdapter {
//一个listView显示的数据数
int count =10; /* starting amount */
//异步加载图片的线程
private AsyncImageLoader imageLoader = new AsyncImageLoader();
@Override
public int getCount() {
return count;
}
@Override
public Object getItem(int pos) {
return pos;
}
@Override
public long getItemId(int pos) {
return pos;
}
//当前的缓存
private Map<Integer, View> viewMap = new HashMap<Integer, View>();
@Override
public View getView(int pos, View v, ViewGroup group) {
//缓存器
View rowView =viewMap.get(pos);
//如果当前没有内容
if(rowView==null){
// System.out.println(v);
TableLayout table=new TableLayout(ViewWeb.this);
TableRow layout=new TableRow(ViewWeb.this);
layout.setOrientation(LinearLayout.HORIZONTAL);
final Page page =allPageData[pos];
if(pos>allPageData.length-1){
pos=allPageData.length-1;
}
//右边的整体布局
View right = LayoutInflater.inflate(R.layout.right, null);
right.setPadding(20, 10, 10, 10);
// final ImageView imageView=(ImageView)right.findViewById(R.id.synjd);
//图片显示单开一个线程
final ImageView imageView=new ImageView(ViewWeb.this);
imageView.setBackgroundResource(R.drawable.wait);
imageView.setPadding(10, 10, 10, 10);
String strImg=page.getImg();
if(strImg!=null){
// if(strImg.indexOf("ima")!=-1){
// strImg="http://365960.com/"+strImg;
// page.setImg(strImg);
// }
imageLoader.loadDrawable(strImg, new ImageCallback() {
public void imageLoaded(Bitmap imageDrawable, String imageUrl) {
imageView.setBackgroundResource(0);
imageView.setImageBitmap(imageDrawable);
imageView.setPadding(10, 10, 10, 10);
page.setBitmap(imageDrawable);
}
});
}
//得到标题
TextView title=(TextView)right.findViewById(R.id.firstTitle);
title.setText(page.getTitle());
//得到环境
TextView hj=(TextView)right.findViewById(R.id.huangjingid);
String target=page.getHj();
String show=isNum(target);
page.setHj(show);
// else{
// String insert= modifyXiaoShu(Double.parseDouble(target.replaceAll("/n", "").trim()));
// page.setHj(insert);
// }
hj.setText(show);
//服务
TextView fw=(TextView)right.findViewById(R.id.fuwuid);
target=page.getHj();
show=isNum(target);
page.setFw(show);
// if(page.getFw()==null || page.getFw().equals("") ){
// page.setFw("0");
// }
// else{
// String insert= modifyXiaoShu(Double.parseDouble(target.replaceAll("/n", "").trim()));
// page.setFw(insert);
// }
fw.setText(isNum(target));
//口味
TextView kw=(TextView)right.findViewById(R.id.kouweiid);
show=isNum(target);
target=page.getKw();
page.setKw(show);
// if(page.getKw()==null || page.getKw().equals("") ){
// page.setKw("0");
// }
// else{
// String insert= modifyXiaoShu(Double.parseDouble(target.replaceAll("/n", "").trim()));
// page.setKw(insert);
// }
kw.setText(isNum(target));
//价格
TextView jg=(TextView)right.findViewById(R.id.jiageid);
target=page.getJg();
show=isNum(target);
page.setJg(show);
// if(page.getJg()==null || page.getJg().equals("") ){
// page.setJg("0");
// }
jg.setText(isNum(target));
// else{
// String insert= modifyXiaoShu(Double.parseDouble(target.replaceAll("/n", "").trim()));
// page.setJg(insert);
// }
//综合得分
TextView zhdf=(TextView)right.findViewById(R.id.zhdfid);
String df=page.getZhdf();
if(df==null || df.equals("")){
try{
df=String.valueOf((Integer.parseInt(page.getJg())+Integer.parseInt(page.getHj())+Integer.parseInt(page.getKw())+Integer.parseInt(page.getFw()))/4);
}catch(Exception e){
df="0";
page.setZhdf(df);
}
}
double score=Double.parseDouble(df)/2;
String strScore=String.valueOf(score);
//1位小数点显示
BigDecimal bd = new BigDecimal(strScore);
bd = bd.setScale(1,BigDecimal.ROUND_HALF_UP);
score=bd.doubleValue();
zhdf.setText(String.valueOf(score));
page.setZhdf(String.valueOf(score));
//判断有几颗完全的星
int fullStar=(int)score/1;
//判断是否有半个的星
boolean hasHarf=false;
if(score%1!=0){
hasHarf=true;
}
//7个ImageView的
int []imageIndex={R.id.image0,R.id.image1,R.id.image2,R.id.image3,R.id.image4};
//放星的那八个ImageView
ImageView imageViews[]=new ImageView[imageIndex.length];
for(int i=0;i<imageViews.length;i++){
imageViews[i]=(ImageView)right.findViewById(imageIndex[i]);
if(i<=fullStar-1){
imageViews[i].setBackgroundResource(R.drawable.star);
}else if(hasHarf && i==fullStar){
imageViews[i].setBackgroundResource(R.drawable.harfstar);
}else{
imageViews[i].setBackgroundResource(R.drawable.nostar);
}
}
//画出一行
layout.addView(imageView, rowP);
layout.addView(right, rowP);
//画出整个表格
table.addView(layout,tableP);
// final String url= harfUrl+"id="+page.getSid()+"&mobile=ok&output=xml";
//把当前的位置传过去
final String index=String.valueOf(pos);
layout.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
//传到详细信息的页面
Intent intent = new Intent(ViewWeb.this,ViewWebDetail.class);
intent.putExtra("index",index);
startActivity(intent);
}
});
//把位置和view都放到缓存里
viewMap.put(pos, table);
return table;
}else{
//如果有的话就直接返回缓存里的
return rowView ;
}
}
}
private class MyTask extends AsyncTask<Void, Void, Void> {
@Override
protected void onPreExecute() {
super.onPreExecute();
isLoading =true;
}
@Override
protected Void doInBackground(Void... params) {
try {
Thread.sleep(1);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
adapter.count += 10;
return null;
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
adapter.notifyDataSetChanged();
listView.setSelection(lastItem);
int currentPage = adapter.count /10;
Toast.makeText(getApplicationContext(), "第" + (currentPage+1) + "页",
Toast.LENGTH_LONG).show();
isLoading = false;
}
}
//修改小数位数
public static String modifyXiaoShu(double score){
java.text.DecimalFormat df =new java.text.DecimalFormat("#.0");
return df.format(score).toString();
}
//判断是否为数字
public static String isNum(String target){
String replace="0";
if(target!=null){
String regStr="\\d+\\.\\d*";
Pattern pattern = Pattern.compile(regStr);
Matcher matcher = pattern.matcher(target);
boolean flag=matcher.find();
if (flag) {
replace = matcher.group();
Double num=Double.valueOf(replace);
if(num==0){
replace="0";
}else{
replace=modifyXiaoShu(num);
}
}else{
regStr="\\d+";
pattern = Pattern.compile(regStr);
matcher = pattern.matcher(target);
if(matcher.find()){
replace = matcher.group();
Double num=Double.valueOf(replace);
if(num==0){
replace="0";
}
}
}
}
return replace;
}
// public boolean onKeyDown(int keyCode, KeyEvent event) {
// if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
//
// if(NearbyMap.byMap!=null){
// Intent intent=new Intent(ViewWeb.this,NearbyMap.byMap.getClass());
// startActivity(intent);
// }else{
// Intent intent=new Intent(ViewWeb.this,MlcxMain.class);
// startActivity(intent);
// }
// return false;
// }
// return false;
// }
}