JS本身只提供语法解析与少部分内部函数支持,其他的均由宿主支持。比如在网页JS中的window, document, navigator等对象,均是由浏览器提供基于其它语言的代码,这些代码通常被隐藏,但很大程度上决定了JS的运行效率。如果你有兴趣,打开Chrome,按F12,调处Console,然后输alert(注意没有()),你就会发现[native code]这个东西。
//创建AsyncTask对象AsyncTaskasyncTask = new AsyncTask() { @Override
protected void onPreExecute() {
super.onPreExecute()
}
//子线程运行的方法
@Override
protected String doInBackground(Void... params) {
//用httpclient请求数据
DefaultHttpClient defaultHttpClient = new DefaultHttpClient()
HttpGet httpGet = new HttpGet(path)
try {
HttpResponse execute = defaultHttpClient.execute(httpGet)
StatusLine statusLine = execute.getStatusLine()
int statusCode = statusLine.getStatusCode()
if (statusCode == 200) {
HttpEntity entity = execute.getEntity()
InputStream content = entity.getContent()
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream() int len = 0
byte[] buffer = new byte[1024]
while ((len = content.read(buffer)) != -1) {
byteArrayOutputStream.write(buffer, 0, len)
}
//给主线程返回请求的数据
return byteArrayOutputStream.toString()
}
} catch (IOException e) {
e.printStackTrace()
} return null
}
//主线程运行的方法
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s)
//创建list集合
list = new ArrayList()
//gson解析
Gson gson = new Gson()
final myBean myBean = gson.fromJson(s, myBean.class)
// 把解析出来的内容存入list集合
list = myBean.data
//找控件
ListView listview = (ListView) findViewById(R.id.listview)
//创建自定义适配器
myBaseAdapter adpter = new myBaseAdapter(list, MainActivity.this)
//设置适配器
listview.setAdapter(adpter)
//设置item的条目点击事件
listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView parent, View view, int position, long id) {
//跳转到第二个页面
Intent intent = new Intent(MainActivity.this, SecondActivity.class)
//intent传值
intent.putExtra("IMAGEURL", list.get(position).IMAGEURL)
intent.putExtra("TITLE", list.get(position).TITLE)
intent.putExtra("FROMNAME", list.get(position).FROMNAME)
intent.putExtra("SHOWTIME", list.get(position).SHOWTIME)
intent.putExtra("SUBTITLE",list.get(position).SUBTITLE)
startActivity(intent)
}
})
}
}
asyncTask.execute()
}
}
//////////////////////////////////////////////youhua
if (convertView == null) {
holder = new viewHolder()
convertView = convertView.inflate(context, R.layout.item, null)
holder.imageView = (ImageView) convertView.findViewById(R.id.imageview)
holder.title = (TextView) convertView.findViewById(R.id.TITLE)
holder.FROMNAME = (TextView) convertView.findViewById(R.id.FROMNAME)
holder.SHOWTIME = (TextView) convertView.findViewById(R.id.SHOWTIME)
convertView.setTag(holder)
} else {
holder = (viewHolder) convertView.getTag()
}
//这步骤是用imageloder加载图片的
http://www.jianshu.com/p/a8cbb228fb83
这个网址里有
DisplayImageOptions displayImageOptions = new DisplayImageOptions.Builder()
.cacheInMemory(true)
.cacheOnDisk(true) .build()
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context)
.defaultDisplayImageOptions(displayImageOptions)
.build()
ImageLoader.getInstance().init(config)
ImageLoader.getInstance().displayImage(list.get(position).IMAGEURL, holder.imageView)
holder.title.setText(list.get(position).TITLE)
holder.FROMNAME.setText(list.get(position).FROMNAME)
holder.SHOWTIME.setText(list.get(position).SHOWTIME)
return convertView
}
解析惊悚 ViewLoader