//第一个MainActity
import android.annotation.SuppressLint;
import android.os.AsyncTask;import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.Toast;
import com.google.gson.Gson;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private List<SuperClass.DataBean> list;
private ListView listView;
private ListView lv;
private String sj;
private List<Jbean.DataBean> data;
private DrawerLayout draw;
private LinearLayout li;
private int num = 1;
@SuppressLint("HandlerLeak")
String pa = "http://120.27.23.105/product/getProductCatagory?cid=";
Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
Gson gson = new Gson();
Jbean jbean = gson.fromJson(sj, Jbean.class);
Toast.makeText(MainActivity.this, jbean + "j", Toast.LENGTH_SHORT).show();
data = jbean.getData();
MyAdapter adapter = new MyAdapter(data,MainActivity.this);
lv.setAdapter(adapter);
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = findViewById(R.id.list_view);
lv = findViewById(R.id.lv);
draw = findViewById(R.id.draw);
li = findViewById(R.id.li);
new Thread(){
@Override
public void run() {
super.run();
sj = GetUrl.getJson();
handler.sendEmptyMessage(0);
}
}.start();
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@SuppressLint("StaticFieldLeak")
@Override
public void onItemClick(AdapterView<?> parent, View view, final int position, long id) {
num = (position%3)+1;
draw.closeDrawer(li);
new AsyncTask<String, String, String>() {
@Override
protected String doInBackground(String... strings) {
String d = "";
try {
URL url = new URL(pa+num);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setConnectTimeout(5000);
connection.setReadTimeout(5000);
int code = connection.getResponseCode();
if (code==200) {
InputStream in = connection.getInputStream();
int len = 0;
byte[] b = new byte[1024 * 20];
while ((len = in.read(b)) != -1) {
String s = new String(b, 0, len);
d += s;
}
}
} catch (Exception e) {
e.printStackTrace();
}
return d;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
Gson gson = new Gson();
SuperClass superClass = gson.fromJson(s, SuperClass.class);
list = superClass.getData();
MyAdapter1 adapter = new MyAdapter1(list,MainActivity.this);
listView.setAdapter(adapter);
}
}.execute();
}
});
}
}
//第一个适配器
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import com.nostra13.universalimageloader.core.ImageLoader;
import java.util.List;
public class MyAdapter extends BaseAdapter {
private List<Jbean.DataBean> data;
private Context context;
ViewHodler hodler;
public MyAdapter(List<Jbean.DataBean> data, Context context) {
this.data = data;
this.context = context;
}
@Override
public int getCount() {
return data.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView==null){
convertView=View.inflate(context,R.layout.item1,null);
hodler = new ViewHodler();
hodler.tv = convertView.findViewById(R.id.tv);
hodler.img= convertView.findViewById(R.id.img);
convertView.setTag(hodler);
}else {
hodler = (ViewHodler) convertView.getTag();
}
hodler.tv.setText(data.get(position).getName());
ImageLoader.getInstance().displayImage(data.get(position).getIcon(),hodler.img);
return convertView;
}
class ViewHodler{
TextView tv;
ImageView img;
}
}
//第二个适配器
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import com.nostra13.universalimageloader.core.ImageLoader;
import java.util.List;
public class MyAdapter1 extends BaseAdapter {
private List<SuperClass.DataBean> list;
private Context context;
ViewHodler hodler;
public MyAdapter1(List<SuperClass.DataBean> data, Context context) {
this.list = data;
this.context = context;
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView==null){
convertView=View.inflate(context,R.layout.item,null);
hodler = new ViewHodler();
hodler.tv = convertView.findViewById(R.id.tv);
hodler.img= convertView.findViewById(R.id.img);
convertView.setTag(hodler);
}else {
hodler = (ViewHodler) convertView.getTag();
}
hodler.tv.setText(list.get(position).getName());
ImageLoader.getInstance().displayImage(list.get(position).getList().get(0).getIcon(),hodler.img);
return convertView;
}
class ViewHodler{
TextView tv;
ImageView img;
}
}
//辅助类 继承Appliction
import android.app.Application;
import android.os.Environment;
import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiskCache;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import java.io.File;
public class MyApp extends Application {
@Override
public void onCreate() {
super.onCreate();
ImageLoaderConfiguration configuration = new ImageLoaderConfiguration.Builder(this)
.discCache(new UnlimitedDiskCache(new File(Environment.getExternalStorageDirectory()
+ "/image")))
.defaultDisplayImageOptions(getImage())
.build();
ImageLoader.getInstance().init(configuration);
}
public DisplayImageOptions getImage() {
DisplayImageOptions image = new DisplayImageOptions.Builder()
.showImageOnFail(R.mipmap.ic_launcher)
.showImageForEmptyUri(R.mipmap.ic_launcher)
.showImageOnLoading(R.mipmap.ic_launcher)
.cacheInMemory(true)
.cacheOnDisc(true)
.build();
return image;
}
}
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
/**
* Created 朱治文lenovo on 2018/1/8
* .
*/
//创建工具类
public class GetUrl {
public static String getJson(){
String path="http://120.27.23.105/product/getCatagory";
String data="";
try {
URL url = new URL(path);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setConnectTimeout(5000);
connection.setReadTimeout(5000);
int code = connection.getResponseCode();
if (code==200){
InputStream in = connection.getInputStream();
int len= 0;
byte[] b = new byte[1024*20];
while ((len=in.read(b))!=-1){
String s = new String(b,0,len);
data+= s;
}
}
} catch (Exception e) {
e.printStackTrace();
}
return data;
}
}
//MainActity的副本
<android.support.v4.widget.DrawerLayout 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"
android:id="@+id/draw"
tools:context="com.example.zhuzhiwen1511r20180108.MainActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/list_view"></ListView>
</LinearLayout>
<LinearLayout
android:id="@+id/li"
android:layout_width="240dp"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_gravity="start">
<ListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/lv"></ListView>
</LinearLayout>
</android.support.v4.widget.DrawerLayout>
//第一个item
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ImageView
android:layout_width="50dp"
android:layout_height="50dp"
android:id="@+id/img"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tv"/>
</LinearLayout>
//第二个item
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<ImageView
android:layout_width="50dp"
android:layout_height="50dp"
android:id="@+id/img"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tv"/>
</LinearLayout>