<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:layout_width="200dp"
android:layout_height="200dp"
android:id="@+id/iv"/>
</android.support.constraint.ConstraintLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.lixinyang.myrecycler_test.MainActivity">
<android.support.v7.widget.RecyclerView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/rv">
</android.support.v7.widget.RecyclerView>
</LinearLayout>
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyHolder> {
private static final String TAG = "MyAdapter";
private ImageLoader instance;
private List<Image.DataBean> list;
private Context context;
public MyAdapter(Context context, List<Image.DataBean> list,ImageLoader instance) {
this.context = context;
this.list = list;
this.instance = instance;
}
//实例化ViewHolder把布局传过去
@Override
public MyHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(context).inflate(R.layout.activity_item, null);
MyHolder myHolder = new MyHolder(view);
return myHolder;
}
//绑定布局赋值
@Override
public void onBindViewHolder(MyHolder holder, int position) {
ImageView imageView = holder.getImageView();
//imageView.setImageResource(R.drawable.aa);
// Toast.makeText(context,list.get(position).getIcon()+"",Toast.LENGTH_SHORT).show();
//ImageLoader instance = ImageLoader.getInstance();
instance.displayImage(list.get(position).getIcon(),imageView);
//instance.displayImage("http://120.27.23.105/images/icon.png",imageView);
Log.d(TAG, "onBindViewHolder() returned: " + instance + "---" + imageView);
}
@Override
public int getItemCount() {
//Log.e("-------",list.size()+"");
return list.size();
}
class MyHolder extends RecyclerView.ViewHolder{
private ImageView imageView;
public MyHolder(View itemView) {
super(itemView);
this.imageView = itemView.findViewById(R.id.iv);
}
public ImageView getImageView() {
return imageView;
}
public void setImageView(ImageView imageView) {
this.imageView = imageView;
}
}
}
public class HttpClin {
private onData data;
public void http(final String uri){
new Thread(){
@Override
public void run() {
super.run();
try {
URL url = new URL(uri);
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setConnectTimeout(5000);
int code = urlConnection.getResponseCode();
if(code==200){
InputStream inputStream = urlConnection.getInputStream();
String aa = aa(inputStream);
data.bb(aa);
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}.start();
}
public String aa(InputStream inputStream){
BufferedReader br = new BufferedReader(new InputStreamReader(inputStream));
StringBuffer sb = new StringBuffer();
String line=null;
try {
while((line=br.readLine())!=null){
sb.append(line);
}
return sb.toString();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
public interface onData{
void bb(String str);
}
public void onDatatext(onData data){
this.data = data;
}
}
public class MainActivity extends AppCompatActivity {
private static final String TAG = "MainActivity-----";
String uri = "http://120.27.23.105/product/getCatagory";
private HttpClin httpClin;
@SuppressLint("HandlerLeak")
Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
String string = (String) msg.obj;
Gson gson = new Gson();
Image image = gson.fromJson(string, Image.class);
List<Image.DataBean> data = image.getData();
//Toast.makeText(MainActivity.this,data.get(0).getIcon(),Toast.LENGTH_SHORT).show();
rv.setLayoutManager(new LinearLayoutManager(MainActivity.this));
rv.setItemAnimator(new DefaultItemAnimator());
ImageLoader instance = ImageLoader.getInstance();
Log.d(TAG, "handleMessage() returned: " + "的开始------");
MyAdapter myAdapter = new MyAdapter(MainActivity.this,data,instance);
rv.setAdapter(myAdapter);
Log.d(TAG, "handleMessage() returned: " + "jieshu----");
}
};
private RecyclerView rv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
rv = (RecyclerView) findViewById(R.id.rv);
httpClin = new HttpClin();
netWork();
httpClin.onDatatext(new HttpClin.onData(){
@Override
public void bb(String str) {
//Toast.makeText(MainActivity.this,str, Toast.LENGTH_SHORT).show();
Log.d("TAG", "bb: "+str);
Message msg = new Message();
msg.obj = str;
handler.sendMessage(msg);
}
});
}
public void netWork(){
httpClin.http(uri);
}
}