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 );
}
}
}