package com.bwei.Test;
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import com.bwei.Test.Bean.MyBean;
import com.bwei.Test.Bean.MySqlite;
import com.bwei.Test.Dao.MyDao;
import com.google.gson.Gson;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import cz.msebera.android.httpclient.HttpResponse;
import cz.msebera.android.httpclient.client.HttpClient;
import cz.msebera.android.httpclient.client.methods.HttpGet;
import cz.msebera.android.httpclient.impl.client.DefaultHttpClient;
public class MainActivity extends AppCompatActivity {
private String path = "http://www.yulin520.com/a2a/forum/allTypeList?sign=376C5BFC22179A1B8FF3A86D4588B29F&pageSize=10&ts=1877785007&forumType=0&page=1";
private MyDao dao;
private List<MySqlite> list;
private ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView= (ListView) findViewById(R.id.tv);
//调用异步
MyAsyncTask asyncTask=new MyAsyncTask();
asyncTask.execute(path);
dao=new MyDao(MainActivity.this);
}
class MyAsyncTask extends AsyncTask<String,Integer,String>{
//准备加载
@Override
protected void onPreExecute() {
super.onPreExecute();
Toast.makeText(MainActivity.this,"正在加载",Toast.LENGTH_SHORT).show();
}
//子线程的内容
@Override
protected String doInBackground(String... params) {
//获取接口地址
String url=params[0];
//创建网络请求
HttpClient client=new DefaultHttpClient();
//请求方式
HttpGet get=new HttpGet(url);
//通过网路请求
try {
HttpResponse response = client.execute(get);
//判断请求码 按行读取
if (response.getStatusLine().getStatusCode()==200){
//得到输出流
InputStream inputStream = response.getEntity().getContent();
String json = Stream(inputStream);
return json;
}
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onProgressUpdate(Integer... values) {
super.onProgressUpdate(values);
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
Gson gson=new Gson();
Log.i("xxx",s);
MyBean bean = gson.fromJson(s, MyBean.class);
list = dao.sel();
if (list.size()==0){
for (int i=0;i<bean.getData().size();i++){
dao.ins(bean.getData().get(i));
}
list=dao.sel();
}
MyAdapter adapter=new MyAdapter();
listView.setAdapter(adapter);
}
}
public String Stream(InputStream inputStream){
byte[] byt=new byte[1024];
int len=0;
ByteArrayOutputStream arrayOutputStream=new ByteArrayOutputStream();
try {
while ((len=inputStream.read(byt))!=-1){
arrayOutputStream.write(byt,0,len);
}
return arrayOutputStream.toString("utf-8");
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
class MyAdapter extends BaseAdapter{
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView==null){
convertView=View.inflate(MainActivity.this,R.layout.layout,null);
holder=new ViewHolder();
holder.textView= (TextView) convertView.findViewById(R.id.content);
holder.textView2= (TextView) convertView.findViewById(R.id.ti);
holder.textView3= (TextView) convertView.findViewById(R.id.userName);
convertView.setTag(holder);
}else {
holder= (ViewHolder) convertView.getTag();
}
holder.textView.setText(list.get(position).getContent());
holder.textView2.setText(list.get(position).getTitle());
holder.textView3.setText(list.get(position).getUserName());
return convertView;
}
}
class ViewHolder{
TextView textView,textView2,textView3;
}
}
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import com.bwei.Test.Bean.MyBean;
import com.bwei.Test.Bean.MySqlite;
import com.bwei.Test.Dao.MyDao;
import com.google.gson.Gson;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import cz.msebera.android.httpclient.HttpResponse;
import cz.msebera.android.httpclient.client.HttpClient;
import cz.msebera.android.httpclient.client.methods.HttpGet;
import cz.msebera.android.httpclient.impl.client.DefaultHttpClient;
public class MainActivity extends AppCompatActivity {
private String path = "http://www.yulin520.com/a2a/forum/allTypeList?sign=376C5BFC22179A1B8FF3A86D4588B29F&pageSize=10&ts=1877785007&forumType=0&page=1";
private MyDao dao;
private List<MySqlite> list;
private ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView= (ListView) findViewById(R.id.tv);
//调用异步
MyAsyncTask asyncTask=new MyAsyncTask();
asyncTask.execute(path);
dao=new MyDao(MainActivity.this);
}
class MyAsyncTask extends AsyncTask<String,Integer,String>{
//准备加载
@Override
protected void onPreExecute() {
super.onPreExecute();
Toast.makeText(MainActivity.this,"正在加载",Toast.LENGTH_SHORT).show();
}
//子线程的内容
@Override
protected String doInBackground(String... params) {
//获取接口地址
String url=params[0];
//创建网络请求
HttpClient client=new DefaultHttpClient();
//请求方式
HttpGet get=new HttpGet(url);
//通过网路请求
try {
HttpResponse response = client.execute(get);
//判断请求码 按行读取
if (response.getStatusLine().getStatusCode()==200){
//得到输出流
InputStream inputStream = response.getEntity().getContent();
String json = Stream(inputStream);
return json;
}
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onProgressUpdate(Integer... values) {
super.onProgressUpdate(values);
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
Gson gson=new Gson();
Log.i("xxx",s);
MyBean bean = gson.fromJson(s, MyBean.class);
list = dao.sel();
if (list.size()==0){
for (int i=0;i<bean.getData().size();i++){
dao.ins(bean.getData().get(i));
}
list=dao.sel();
}
MyAdapter adapter=new MyAdapter();
listView.setAdapter(adapter);
}
}
public String Stream(InputStream inputStream){
byte[] byt=new byte[1024];
int len=0;
ByteArrayOutputStream arrayOutputStream=new ByteArrayOutputStream();
try {
while ((len=inputStream.read(byt))!=-1){
arrayOutputStream.write(byt,0,len);
}
return arrayOutputStream.toString("utf-8");
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
class MyAdapter extends BaseAdapter{
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView==null){
convertView=View.inflate(MainActivity.this,R.layout.layout,null);
holder=new ViewHolder();
holder.textView= (TextView) convertView.findViewById(R.id.content);
holder.textView2= (TextView) convertView.findViewById(R.id.ti);
holder.textView3= (TextView) convertView.findViewById(R.id.userName);
convertView.setTag(holder);
}else {
holder= (ViewHolder) convertView.getTag();
}
holder.textView.setText(list.get(position).getContent());
holder.textView2.setText(list.get(position).getTitle());
holder.textView3.setText(list.get(position).getUserName());
return convertView;
}
}
class ViewHolder{
TextView textView,textView2,textView3;
}
}