public class ShowModel {
public interface GetModel{
void OnSuccess(JSONArray jsonArray);
}
GetModel getModel;
public void getShowModel(GetModel getModel){
this.getModel=getModel;
}
Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if(msg.what==0){
JSONArray jsonArray = (JSONArray) msg.obj;
if(getModel!=null){
getModel.OnSuccess(jsonArray);
}
}
}
};
public void getModel(String s){
OkHttpClient okHttpClient=new OkHttpClient();
Request request=new Request.Builder().url(s).build();
okHttpClient.newCall(request).enqueue(new Callback() {
private JSONArray data;
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String string = response.body().string();
try {
先通过json串得到第一层数组
JSONArray jsonArray=new JSONArray(string);
数组里只有一个对象所以下标为0
JSONObject jsonObject = jsonArray.getJSONObject(0);
然后循环得到数组里的每一个对象
for (int i = 0; i <jsonObject.length() ; i++) {
数组的名字是data所以传字符串data
data = jsonObject.getJSONArray("data");
}
} catch (JSONException e) {
e.printStackTrace();
}
Message message=new Message();
message.what=0;
message.obj=data;
handler.sendMessage(message);
}
});
}
}
适配器
public class ShowAdapter extends RecyclerView.Adapter<ShowAdapter.MyViewHodler> {
Context context;
JSONArray user;
public ShowAdapter(Context context, JSONArray user) {
this.context = context;
this.user = user;
}
@Override
public MyViewHodler onCreateViewHolder(ViewGroup parent, int viewType) {
View inflate = LayoutInflater.from(context).inflate(R.layout.item, parent, false);
MyViewHodler myViewHodler=new MyViewHodler(inflate);
return myViewHodler;
}
@Override
public void onBindViewHolder(MyViewHodler holder, int position) {
try {
在适配器里取出你要的数据
本来是数组你要先得到里面的对象在得到对象里的数据
String title = user.getJSONObject(position).getString("title");
String img = user.getJSONObject(position).getString("img");
Uri parse = Uri.parse(img);
holder.imageView.setImageURI(parse);
holder.textView.setText(title);
} catch (JSONException e) {
e.printStackTrace();
}
}
@Override
public int getItemCount() {
return user.length();
}
public class MyViewHodler extends RecyclerView.ViewHolder{
public final TextView textView;
public final ImageView imageView;
public MyViewHodler(View itemView) {
super(itemView);
textView = (TextView) itemView.findViewById(R.id.text);
imageView = (ImageView) itemView.findViewById(R.id.img);
}
}
}