要写网络权限
Model层
package com.jia.logindemo.model;
import android.util.Log;
import com.google.common.io.CharStreams;
import com.google.gson.Gson;
import com.jia.logindemo.HttpModelCallBack;
import com.jia.logindemo.bean.ShowBean;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.List;
public class ShowModel {
public void show(final HttpModelCallBack<List> callBack){
final String data = "http://www.xieast.com/api/news/news.php?type=shehui&page=1";
new Thread(){
@Override
public void run() {
super.run();
try {
URL url = new URL(data);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setConnectTimeout(3000);
int code = connection.getResponseCode();
if(code == HttpURLConnection.HTTP_OK){}
InputStream inputStream = connection.getInputStream();
String s = CharStreams.toString(new InputStreamReader(inputStream, "UTF-8"));
Gson gson = new Gson();
ShowBean showBean = gson.fromJson(s,ShowBean.class);
List<ShowBean.DataBean> data1 = showBean.getData();
Log.d("tttttttt:",data1.get(1).toString());
if(showBean.getCode() == 1){
callBack.onSuccess(data1);
}else{
callBack.onFailer("展示失败");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}.start();
}
}
View层
package com.jia.logindemo.view;
import com.jia.logindemo.bean.ShowBean;
import java.util.List;
public interface ShowView {
void showSuccess(List<ShowBean.DataBean> result);
void showFailer(String msg);
}
Presenter层
package com.jia.logindemo.presenter;
import com.jia.logindemo.HttpModelCallBack;
import com.jia.logindemo.bean.ShowBean;
import com.jia.logindemo.model.ShowModel;
import com.jia.logindemo.view.ShowView;
import java.util.List;
public class ShowPresenter {
private ShowView showView;
private ShowModel showModel;
public ShowPresenter(ShowView showView) {
this.showView = showView;
showModel = new ShowModel();
}
public void show(){
showModel.show(new HttpModelCallBack<List>() {
@Override
public void onSuccess(List<ShowBean.DataBean> result) {
showView.showSuccess(result);
}
@Override
public void onFailer(String msg) {
showView.showFailer("展示失败");
}
});
}
}
Activity
package com.jia.logindemo;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.GridView;
import android.widget.Toast;
import com.jia.logindemo.bean.ShowBean;
import com.jia.logindemo.presenter.ShowPresenter;
import com.jia.logindemo.view.ShowView;
import java.util.ArrayList;
import java.util.List;
public class ShowActivity extends AppCompatActivity implements ShowView {
private GridView gv_show;
private ShowPresenter showPresenter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_show);
gv_show = findViewById(R.id.gv_show);
showPresenter = new ShowPresenter(this);
showPresenter.show();
}
@Override
public void showSuccess(final List<ShowBean.DataBean> result) {
//快速切换线程
runOnUiThread(new Runnable() {
@Override
public void run() {
MyAdapter adapter = new MyAdapter(ShowActivity.this,result);
// Toast.makeText(ShowActivity.this,result.toString(),Toast.LENGTH_SHORT).show();
gv_show.setAdapter(adapter);
}
});
}
@Override
public void showFailer(String msg) {
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(ShowActivity.this,"展示失败",Toast.LENGTH_SHORT).show();
}
});
}
}
适配器Adapter
package com.jia.logindemo;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import com.jia.logindemo.bean.ShowBean;
import java.util.List;
public class MyAdapter extends BaseAdapter {
private Context context;
private List<ShowBean.DataBean> list;
public MyAdapter(Context context, List<ShowBean.DataBean> list) {
this.context = context;
this.list = list;
}
@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 = null;
if(convertView == null){
convertView = View.inflate(context,R.layout.show_grid,null);
holder = new ViewHolder();
holder.title = convertView.findViewById(R.id.title);
holder.date = convertView.findViewById(R.id.date);
convertView.setTag(holder);
}else{
holder = (ViewHolder) convertView.getTag();
}
holder.date.setText(""+list.get(position).getDate());
holder.title.setText(""+list.get(position).getTitle());
return convertView;
}
class ViewHolder{
TextView title;
TextView date;
}
}