在网络封装类中
public class OKHttpUtils {
public OKHttpUtils() {
}
public OKHttpUtils get(String path) {
OkHttpClient okHttpClient = new OkHttpClient();
final Request request = new Request.Builder()
.get()
.url(path)
.build();
okHttpClient.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
getData.Data(response.body().string());
}
});
return this;
}
//写一个接口
public interface GetData {
void Data(String s);
}
private GetData getData;
public void getDataLisenter(GetData getData) {
this.getData = getData;
}
}
在MainActivity中
public class MainActivity extends AppCompatActivity {
private ListView listView;
private String path="http://www.xieast.com/api/news/news.php?page=1";
private ArrayList<User.DataBean> list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化控件
listView = (ListView) findViewById(R.id.listview);
OKHttpUtils okHttpUtils=new OKHttpUtils();
okHttpUtils.get(path).getDataLisenter(new OKHttpUtils.GetData() {
@Override
public void Data(String s) {
list=new ArrayList<>();
Gson gson=new Gson();
User user = gson.fromJson(s, User.class);
List<User.DataBean> data = user.getData();
list.addAll(data);
Message message=Message.obtain();
message.obj=list;
handler.sendMessage(message);
}
});
}
Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
MyAdapter myAdapter=new MyAdapter(MainActivity.this,list);
listView.setAdapter(myAdapter);
}
};
}