MainActivity
package com.example.a10_drawerlayout_demo; import android.os.Bundle; import android.support.v4.app.FragmentActivity; import android.support.v4.widget.DrawerLayout; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.FrameLayout; import android.widget.ListView; import android.widget.RelativeLayout; import java.util.ArrayList; import java.util.List; public class MainActivity extends FragmentActivity { private DrawerLayout dlt; private ListView lv; private FrameLayout flt; private RelativeLayout rlt; private List<String> list; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); dlt = (DrawerLayout) findViewById(R.id.dlt); lv = (ListView) findViewById(R.id.lv); flt = findViewById(R.id.flt); rlt = findViewById(R.id.rlt); list = new ArrayList<>(); for (int i = 1; i < 10; i++) { list.add(i + ""); } ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_expandable_list_item_1, android.R.id.text1, list); lv.setAdapter(arrayAdapter); lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { WeiXinFragment weiXinFragment = new WeiXinFragment(); Bundle bundle = new Bundle(); bundle.putString("key", list.get(i)); weiXinFragment.setArguments(bundle); getSupportFragmentManager().beginTransaction().replace(R.id.flt, weiXinFragment).commit(); dlt.closeDrawer(rlt); } }); } }
-----------------------------------------------------------------------------
Myadapter
-----------------------------------------------------------------------------
package com.example.a10_drawerlayout_demo; import android.content.Context; import android.graphics.Bitmap; 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.DisplayImageOptions; import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.ImageLoaderConfiguration; import com.nostra13.universalimageloader.core.assist.ImageScaleType; import java.util.List; /** * Created by lenovo on 2017/9/12. */ public class Myadapter extends BaseAdapter { Context context; List<DataDataBean.ResultBean.ListBean> list; private int LEFT = 0; private int RIGHT = 1; public Myadapter(Context context, List<DataDataBean.ResultBean.ListBean> list) { this.context = context; this.list = list; ImageLoader.getInstance().init(ImageLoaderConfiguration.createDefault(context)); } @Override public int getCount() { return list.size(); } @Override public Object getItem(int i) { return list.get(i); } @Override public long getItemId(int i) { return i; } @Override public int getViewTypeCount() { return 2; } @Override public int getItemViewType(int position) { if (position % 2 == 0) { return LEFT; } return RIGHT; } @Override public View getView(int i, View view, ViewGroup viewGroup) { if (getItemViewType(i) == LEFT) { LeftHolder hoder; if (view == null) { view = View.inflate(context, R.layout.item_layout_01, null); hoder = new LeftHolder(); hoder.tv = view.findViewById(R.id.tv1); hoder.iv = view.findViewById(R.id.iv1); view.setTag(hoder); } else { hoder = (LeftHolder) view.getTag(); } hoder.tv.setText(list.get(i).getTitle()); ImageLoader.getInstance().displayImage(list.get(i).getFirstImg(), hoder.iv, getOption()); } else if (getItemViewType(i) == RIGHT) { RightHolder hoder; if (view == null) { view = View.inflate(context, R.layout.item_layout_02, null); hoder = new RightHolder(); hoder.tv = view.findViewById(R.id.tv2); hoder.iv = view.findViewById(R.id.iv2); view.setTag(hoder); } else { hoder = (RightHolder) view.getTag(); } hoder.tv.setText(list.get(i).getTitle()); ImageLoader.getInstance().displayImage(list.get(i).getFirstImg(), hoder.iv, getOption()); } return view; } private DisplayImageOptions getOption() { DisplayImageOptions imageOptions = new DisplayImageOptions.Builder() .showImageForEmptyUri(R.mipmap.ic_launcher) .showImageOnFail(R.mipmap.ic_launcher) .showImageOnLoading(R.mipmap.ic_launcher) .cacheInMemory(true) .cacheOnDisk(true) .imageScaleType(ImageScaleType.EXACTLY_STRETCHED) .resetViewBeforeLoading(true)//在加载之前复位一下显示 .bitmapConfig(Bitmap.Config.RGB_565)//图片的质量 .considerExifParams(true)///是否考虑JPEG图像EXIF参数(旋转,翻转) .build(); return imageOptions; } private class LeftHolder { TextView tv; ImageView iv; } private class RightHolder { TextView tv; ImageView iv; } }
--------------------------------------------------------------------------------------
WeiXinFragment
--------------------------------------------------------------------------------------
package com.example.a10_drawerlayout_demo; import android.os.AsyncTask; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import com.example.a10_drawerlayout_demo.view.XListView; import com.google.gson.Gson; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; /** * Created by lenovo on 2017/9/12. */ public class WeiXinFragment extends Fragment implements XListView.IXListViewListener { private XListView xlv; private int num = 1; private List<DataDataBean.ResultBean.ListBean> list = new ArrayList<>(); private Myadapter adapter; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.weixin_layout, container, false); xlv = view.findViewById(R.id.xlv); xlv.setPullRefreshEnable(true); xlv.setPullLoadEnable(false); xlv.setXListViewListener(this); return view; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); Bundle bundle = getArguments(); String pageNum = bundle.getString("key", "1"); num = Integer.parseInt(pageNum); getDataFromNet(); } private void getDataFromNet() { AsyncTask<Void, Void, String> asyncTask = new AsyncTask<Void, Void, String>() { @Override protected String doInBackground(Void... voids) { String path = "http://v.juhe.cn/weixin/query"; try { URL url = new URL(path); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("POST"); connection.setReadTimeout(5000); connection.setConnectTimeout(5000); connection.setDoOutput(true); connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); String param = "key=19178372f8a7c069c42cd59df8d84a46&ps=10&pno=" + num; int responseCode = connection.getResponseCode(); if (responseCode == 200) { InputStream inputStream = connection.getInputStream(); String json = streamTostring(inputStream, "utf-8"); Log.i("----", json); return json; } } catch (Exception e) { e.printStackTrace(); } return ""; } @Override protected void onPostExecute(String json) { Gson gson = new Gson(); DataDataBean dataDataBean = gson.fromJson(json, DataDataBean.class); list.addAll(0, dataDataBean.getResult().getList()); setAdapter(); xlv.stopRefresh(); Date date = new Date(System.currentTimeMillis()); SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm"); xlv.setRefreshTime(dateFormat.format(date)); } }; asyncTask.execute(); } private void setAdapter() { if (adapter == null) { adapter = new Myadapter(getActivity(), list); xlv.setAdapter(adapter); } else { adapter.notifyDataSetChanged(); } } private String streamTostring(InputStream inputStream, String charset) { try { InputStreamReader inputStreamReader = new InputStreamReader(inputStream, charset); BufferedReader bufferedReader = new BufferedReader(inputStreamReader); String s = null; StringBuilder builder = new StringBuilder(); while ((s = bufferedReader.readLine()) != null) { builder.append(s); } bufferedReader.close(); return builder.toString(); } catch (Exception e) { e.printStackTrace(); } return null; } @Override public void onRefresh() { num++; getDataFromNet(); } @Override public void onLoadMore() { } }