主布局:
<?xml version="1.0" encoding="utf-8"?> <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent"> <FrameLayout android:id="@+id/frame_layout" android:layout_width="match_parent" android:layout_height="match_parent"> </FrameLayout> <RelativeLayout android:background="#f00" android:id="@+id/relative_layout" android:layout_gravity="left" android:layout_width="240dp" android:layout_height="match_parent"> <ImageView android:id="@+id/image" android:src="@mipmap/ic_launcher" android:layout_centerHorizontal="true" android:layout_width="50dp" android:layout_marginTop="20dp" android:layout_height="50dp" /> <ListView android:layout_below="@+id/image" android:layout_marginTop="20dp" android:id="@+id/list_view" android:layout_width="match_parent" android:layout_height="match_parent"> </ListView> </RelativeLayout> </android.support.v4.widget.DrawerLayout> ============================================================ 主Activity:protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); frameLayout = (FrameLayout) findViewById(R.id.frame_layout); relativeLayout = (RelativeLayout) findViewById(R.id.relative_layout); listView = (ListView) findViewById(R.id.list_view); list = new ArrayList<>(); for (int i = 1; i<10; i++){ list.add(i+""); } ArrayAdapter<String> arrayAdapter = new ArrayAdapter<>(MainActivity.this, android.R.layout.simple_list_item_1, android.R.id.text1, list); listView.setAdapter(arrayAdapter); listView.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.frame_layout,weiXinFragment).commit(); drawerLayout.closeDrawer(relativeLayout); } }); } }=========================================================================================
=========================================================================================
weixinFragment:public class WeiXinFragment extends Fragment implements XListView.IXListViewListener { private XListView xListView; private int num = 1; private List<DataDataBean.NewslistBean> list = new ArrayList<>(); private MyAdapter myAdapter; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.weixin_layout, container, false); xListView = view.findViewById(R.id.x_listview); return view; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); xListView.setPullLoadEnable(true); xListView.setPullRefreshEnable(true); xListView.setXListViewListener(this); 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 = "https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num="+num; try { URL url = new URL(path); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); //设置 connection.setRequestMethod("GET"); connection.setReadTimeout(5000); connection.setConnectTimeout(5000); //获取 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) { if(json != null && ! json.isEmpty()){ Gson gson = new Gson(); DataDataBean dataDataBean = gson.fromJson(json, DataDataBean.class); list.addAll(0,dataDataBean.getNewslist()); setAdapter(); Log.i("===11111===",json); xListView.stopRefresh(); } } }; asyncTask.execute(); } private void setAdapter() { if (myAdapter == null) { myAdapter = new MyAdapter(getActivity(), list); xListView.setAdapter(myAdapter); }else{ //刷新 myAdapter.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() { } @Override public void onLoadMore() { } }=================================================================
=================================================================
Activity页面:public class MyAdapter extends BaseAdapter{ Context context; List<DataDataBean.NewslistBean> list; private int LEFT = 0; private int RIGHT =1; public MyAdapter(Context context, List<DataDataBean.NewslistBean> 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) { Log.i("===11111===","111111111"); LeftHolder holder; if (view == null) { view = View.inflate(context, R.layout.item_layout_01, null); holder = new LeftHolder(); holder.image_01 = view.findViewById(R.id.image_01); holder.text_title = view.findViewById(R.id.text_title); view.setTag(holder); } else { holder = (LeftHolder) view.getTag(); } Log.i("===11111===","111222222222211"); holder.text_title.setText(list.get(i).getTitle()); ImageLoader.getInstance().displayImage(list.get(i).getPicUrl(),holder.image_01,getOption()); }else if (getItemViewType(i) == RIGHT){ RightHolder holder; if (view == null){ view =View.inflate(context, R.layout.item_layout_02,null); holder = new RightHolder(); holder.text_title = view.findViewById(R.id.text_title); view.setTag(holder); }else { holder = (RightHolder) view.getTag(); } Log.i("===11111===","13333333331"); //赋值 holder.text_title.setText(list.get(i).getTitle()); } 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; } class LeftHolder{ TextView text_title; ImageView image_01; } class RightHolder{ TextView text_title; } }