窗前明月光
package com.example.exam20;
import android.util.Log;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
public class HttpUtils {
public String getJsonString(String path){
InputStream is=null;
ByteArrayOutputStream baos=null;
try {
URL url = new URL(path);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setReadTimeout(5000);
connection.setConnectTimeout(5000);
connection.connect();
Log.i("TAG",""+connection.getResponseCode());
is=connection.getInputStream();
baos=new ByteArrayOutputStream();
int len=0;
byte[] b = new byte[1024];
while((len=is.read(b))!=-1){
baos.write(b,0,len);
}
String s = baos.toString();
Log.i("TAG", s);
return s;
} catch (Exception e) {
e.printStackTrace();
}finally {
if(is!=null){
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(baos!=null){
try {
baos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return null;
}
}
疑是地上霜
package com.example.exam20;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import java.util.List;
public class MyAdapter extends BaseAdapter {
private List<JavaBean.DataBean.DatasBean> lists;
private LayoutInflater inflater;
private Context context;
public MyAdapter(List<JavaBean.DataBean.DatasBean> lists, Context context) {
this.lists = lists;
this.context = context;
inflater=LayoutInflater.from(context);
}
@Override
public int getCount() {
return lists.size();
}
@Override
public Object getItem(int position) {
return lists.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder=null;
if(convertView==null){
holder=new ViewHolder();
convertView=inflater.inflate(R.layout.item,null);
holder.chapterName=convertView.findViewById(R.id.chapterName);
holder.title=convertView.findViewById(R.id.title_item);
holder.niceDate=convertView.findViewById(R.id.niceDate);
convertView.setTag(holder);
}else {
holder= (ViewHolder) convertView.getTag();
}
holder.chapterName.setText(lists.get(position).getChapterName());
holder.title.setText(lists.get(position).getTitle());
holder.niceDate.setText(lists.get(position).getNiceDate());
return convertView;
}
class ViewHolder{
private TextView chapterName;
private TextView title;
private TextView niceDate;
}
}
举头望明月
package com.example.exam20;
import android.content.Context;
import android.os.AsyncTask;
import android.util.Log;
import android.widget.Toast;
import com.google.gson.Gson;
import java.util.List;
public class MyAsyncTask extends AsyncTask<String,Void, List<JavaBean.DataBean.DatasBean>> {
private List<JavaBean.DataBean.DatasBean> lists;
private MyAdapter adapter;
private Context context;
public MyAsyncTask(List<JavaBean.DataBean.DatasBean> lists, MyAdapter adapter, Context context) {
this.lists = lists;
this.adapter = adapter;
this.context = context;
}
@Override
protected List<JavaBean.DataBean.DatasBean> doInBackground(String... strings) {
HttpUtils utils = new HttpUtils();
String s = utils.getJsonString(strings[0]);
if(s!=null){
List<JavaBean.DataBean.DatasBean> datas = new Gson().fromJson(s, JavaBean.class).getData().getDatas();
return datas;
}else {
Log.i("TAG", "数据获取失败");
return null;
}
}
@Override
protected void onPostExecute(List<JavaBean.DataBean.DatasBean> datasBeans) {
super.onPostExecute(datasBeans);
if(datasBeans!=null){
lists.addAll(datasBeans);
adapter.notifyDataSetChanged();
}else {
Toast.makeText(context, "数据获取失败", Toast.LENGTH_SHORT).show();
}
}
}
低头思故乡
package com.example.exam20;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.widget.ListView;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private SwipeRefreshLayout srl;
private List<JavaBean.DataBean.DatasBean> lists=new ArrayList<>();
private LayoutInflater inflater;
private MyAdapter adapter;
private ListView lv;
private String path="127.0.0.1:8080/asd/asd";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
srl=findViewById(R.id.srl);
lv=findViewById(R.id.lv);
into();
togo();
}
private void togo(){
new MyAsyncTask(lists,adapter,this).execute(path);
}
private void into() {
inflater=this.getLayoutInflater();
adapter=new MyAdapter(lists,this);
lv.setAdapter(adapter);
srl.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
Toast.makeText(MainActivity.this, "刷新成功", Toast.LENGTH_SHORT).show();
srl.setRefreshing(false);
}
});
}
}