MainActivity
package www.bawei.com.okhttp;
import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import com.google.gson.Gson;
import java.util.List;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
String url = "http://api.expoon.com/AppNews/getNewsList/type/1/p/1";
private ListView listView;
private Button button;
private List<Bean.DataBean> list;
private MyAdapter adapter;
private String The_Json;
private Button button1;
private ListView listView1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.btn);
button1 = (Button) findViewById(R.id.btn1);
listView = (ListView) findViewById(R.id.lv);
listView1 = (ListView) findViewById(R.id.lv1);
button.setOnClickListener(this);
button1.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.btn:
init();
listView.setAdapter(adapter);
break;
case R.id.btn1:
init();
listView1.setAdapter(adapter);
break;
}
}
private void init() {
if (list != null) {
adapter = new MyAdapter(list, MainActivity.this);
} else {
OkHttp okHttp = new OkHttp();
okHttp.getDate(url);
okHttp.getOkHttpUtils(new OkHttp.OkHttpLisnner() {
@Override
public void Error(String str) {
Toast.makeText(MainActivity.this, str, Toast.LENGTH_SHORT).show();
}
@Override
public void Success(String json) {
The_Json = json;
Gson gson = new Gson();
Bean bean = gson.fromJson(json, Bean.class);
list=bean.getData();
}
});
}
}
class MyAdapter extends BaseAdapter {
List<Bean.DataBean> list;
Context context;
public MyAdapter(List<Bean.DataBean> list, Context context) {
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) {
convertView=View.inflate(context,R.layout.the_layout,null);
TextView tv1 = convertView.findViewById(R.id.tv1);
tv1.setText(list.get(position).getNews_title());
return convertView;
}
}
}
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
OkhttpUtils
package www.bawei.com.okhttp; import android.os.Handler; import android.os.Message; import java.io.IOException; import okhttp3.Call; import okhttp3.Callback; import okhttp3.FormBody; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; /** * Created by dell on 2018/1/3. */ public class OkHttp { private OkHttpLisnner okHttpLisnner; private MyHander myHander = new MyHander(); private OkHttpClient okHttpClient; private Call call; public void postDate(String s) { FormBody builder = new FormBody.Builder() .add("Type", "type") .add("key", "key") .build(); Request request = new Request.Builder().post(builder).url(s).build(); Call okHttp = getOkHttp(request); okHttp.enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { Message ErrorMsg = myHander.obtainMessage(); ErrorMsg.obj = "请求数据失败"; ErrorMsg.what = 0; myHander.sendMessage(ErrorMsg); } @Override public void onResponse(Call call, Response response) throws IOException { Message SuccessMsg = myHander.obtainMessage(); SuccessMsg.obj = response.body().string(); SuccessMsg.what = 1; myHander.sendMessage(SuccessMsg); } }); } public void getDate(String s) { Request request = new Request.Builder().url(s).build(); Call okHttp = getOkHttp(request); okHttp.enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { Message ErrorMsg = myHander.obtainMessage(); ErrorMsg.obj = "请求数据失败"; ErrorMsg.what = 0; myHander.sendMessage(ErrorMsg); } @Override public void onResponse(Call call, Response response) throws IOException { Message SuccessMsg = myHander.obtainMessage(); SuccessMsg.obj = response.body().string(); SuccessMsg.what = 1; myHander.sendMessage(SuccessMsg); } }); } private Call getOkHttp(Request request) { okHttpClient = new OkHttpClient(); call = okHttpClient.newCall(request); return call; } public interface OkHttpLisnner { void Error(String str); void Success(String json); } public void getOkHttpUtils(OkHttpLisnner okHttpLisnner) { this.okHttpLisnner = okHttpLisnner; } class MyHander extends Handler { @Override public void handleMessage(Message msg) { int what = msg.what; Object obj = msg.obj; switch (what) { case 0: String err = (String) obj; okHttpLisnner.Error(err); break; case 1: String json = (String) obj; okHttpLisnner.Success(json); break; } } } } 添加依赖<uses-permission android:name="android.permission.INTERNET"/> 效果
Bean类和布局就不上传了#¥%……&*()——
||| |||
|||—————||||||—————||||||——__——|||
|||)) (( |||
————————