//MainActivity的xml
<?xml version="1.0" encoding="UTF-8"?>-<android.support.v4.widget.DrawerLayout android:layout_height=“match_parent” android:layout_width=“match_parent” android:id="@+id/Drawer_Layout" xmlns:android=“http://schemas.android.com/apk/res/android”>
-
-
</android.support.v4.widget.DrawerLayout>
//MainActivityd 类
package com.zhuyue.dell.monilianxi;
import android.os.Bundle;
import android.support.v4.app.FragmentManager;
import android.support.v4.view.ViewPager;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private FrameLayout Framelayout;
private TextView xtv;
private TextView ltv;
private DrawerLayout Drawer_Layout;
private AFragment aFragment;
private BFragment bFragment;
private FragmentManager manager;
private ViewPager vp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initData();
initView();
}
private void initData() {
aFragment = new AFragment();
bFragment = new BFragment();
}
private void initView() {
Framelayout = (FrameLayout) findViewById(R.id.Framelayout);
xtv = (TextView) findViewById(R.id.xtv);
xtv.setOnClickListener(this);
ltv = (TextView) findViewById(R.id.ltv);
ltv.setOnClickListener(this);
Drawer_Layout = (DrawerLayout) findViewById(R.id.Drawer_Layout);
manager=getSupportFragmentManager();
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.xtv:
manager.beginTransaction().replace(R.id.Framelayout,aFragment).commit();
Drawer_Layout.closeDrawers();
break;
case R.id.ltv:
manager.beginTransaction().replace(R.id.Framelayout,bFragment).commit();
Drawer_Layout.closeDrawers();
break;
}
}
}
建一个applicationdemo包
package com.zhuyue.dell.monilianxi.applicationdemo;
import android.app.Application;
import android.os.Environment;
import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiskCache;
import com.nostra13.universalimageloader.cache.disc.naming.HashCodeFileNameGenerator;
import com.nostra13.universalimageloader.cache.memory.impl.LruMemoryCache;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.assist.QueueProcessingType;
import com.nostra13.universalimageloader.core.decode.BaseImageDecoder;
import com.nostra13.universalimageloader.core.download.BaseImageDownloader;
import java.io.File;
/**
-
你只要写了Application必须要注册如果不注册就会报错
*/
public class MyApp extends Application {@Override
public void onCreate() {
super.onCreate();
ImageLoaderConfiguration imageLoaderConfiguration = ImageLoaderConfiguration.createDefault(this);
ImageLoader.getInstance().init(imageLoaderConfiguration);
}
}
Utils 工具包
package com.zhuyue.dell.monilianxi.utils;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class HttpUtils {
public static String get(String urlStr) throws Exception {
URL url = new URL(urlStr);
//由一个有效的网址服务返回这个对象
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
//设置请求方式
connection.setRequestMethod("GET");
connection.setConnectTimeout(5000);
InputStream stream = connection.getInputStream();
String inputStr = getInputStr(stream);
return inputStr;
}
//把流转成字符串
private static String getInputStr(InputStream stream) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(stream));
StringBuffer sb = new StringBuffer();
String str = null;
while ((str = br.readLine()) != null) {
sb.append(str);
}
return sb.toString();
}
}
//AFragment的xml
<?xml version="1.0" encoding="utf-8"?><com.zhuyue.dell.mylibrary.view.XListView
android:id="@+id/X_ListView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
AFragment的类
package com.zhuyue.dell.monilianxi;
import android.content.Context;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.google.gson.Gson;
import com.zhuyue.dell.monilianxi.Aadapter.MyAdapter;
import com.zhuyue.dell.monilianxi.bean.Json;
import com.zhuyue.dell.monilianxi.utils.HttpUtils;
import com.zhuyue.dell.mylibrary.view.XListView;
import java.util.ArrayList;
/**
-
A simple {@link Fragment} subclass.
*/
public class AFragment extends Fragment implements XListView.IXListViewListener {private String mUrl = “http://www.xieast.com/api/news/news.php?page=”;
private int index = 1;
private View mView;
private ArrayList<Json.DataBean> mList = new ArrayList<>();
private XListView X_ListView;
private MyAdapter mAdapter;@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
mView = inflater.inflate(R.layout.fragment_a, container, false);initView(mView); mAdapter=new MyAdapter(mList,getActivity()); X_ListView.setAdapter(mAdapter); new MyTask().execute(mUrl+index); return mView;
}
private void initView(View mView) {
X_ListView = mView.findViewById(R.id.X_ListView);
X_ListView.setPullLoadEnable(true);
X_ListView.setXListViewListener(this);
}@Override
public void onRefresh() {
mList.clear();
index=1;
new MyTask().execute(mUrl+index);}
public void stop(){
X_ListView.stopRefresh();
X_ListView.stopLoadMore();
X_ListView.setRefreshTime(“刚刚”);}
@Override
public void onLoadMore() {
index++;
new MyTask().execute(mUrl+index);}
class MyTask extends AsyncTask<String,Void,ArrayList<Json.DataBean>>{@Override protected ArrayList<Json.DataBean> doInBackground(String... strings) { try { String s = HttpUtils.get(strings[0]); Gson gson = new Gson(); Json json = gson.fromJson(s, Json.class); return (ArrayList<Json.DataBean>)json.getData(); } catch (Exception e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(ArrayList<Json.DataBean> dataBeans) { mList.addAll(dataBeans); mAdapter.notifyDataSetChanged(); stop(); }
}
}
//AFragment的适配器
package com.zhuyue.dell.monilianxi.Aadapter;
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.display.CircleBitmapDisplayer;
import com.zhuyue.dell.monilianxi.R;
import com.zhuyue.dell.monilianxi.bean.Json;
import java.util.ArrayList;
public class MyAdapter extends BaseAdapter {
private final int ITEM_ONE = 0;
private final int ITEM_TWO = 1;
private ArrayList<Json.DataBean> mList;
private Context mContext;
private ImageLoader mImageLoader = ImageLoader.getInstance();
private DisplayImageOptions mDisplayImageOp;
public MyAdapter(ArrayList<Json.DataBean> mList, Context mContext) {
this.mList = mList;
this.mContext = mContext;
mDisplayImageOp = new DisplayImageOptions.Builder()
.showStubImage(R.drawable.ic_launcher)
.showImageForEmptyUri(R.mipmap.ic_launcher)
.showImageOnFail(R.drawable.ic_launcher)
.cacheInMemory(true)
.cacheOnDisc(true)
.bitmapConfig(Bitmap.Config.ARGB_8888)
.displayer(new CircleBitmapDisplayer())
.build();
}
@Override
public int getCount() {
return mList.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) {
HolderOne one = null;
HolderTwo two = null;
int type = getItemViewType(position);
Json.DataBean dataBean = mList.get(position);
switch (type) {
case ITEM_ONE:
if (convertView == null) {
one = new HolderOne();
convertView = View.inflate(mContext, R.layout.item_one, null);
one.mNameOne = convertView.findViewById(R.id.Item_One_Text);
one.mImageOne = convertView.findViewById(R.id.Item_One_Image);
convertView.setTag(one);
} else {
one = (HolderOne) convertView.getTag();
}
one.mNameOne.setText(dataBean.getTitle() + "");
mImageLoader.displayImage(dataBean.getThumbnail_pic_s(), one.mImageOne, mDisplayImageOp);
break;
case ITEM_TWO:
if (convertView == null) {
two = new HolderTwo();
convertView = View.inflate(mContext, R.layout.item_two, null);
two.mNameTwo = convertView.findViewById(R.id.Item_Two_Text);
two.mImageTwo = convertView.findViewById(R.id.Item_Two_Image);
convertView.setTag(two);
} else {
two= (HolderTwo) convertView.getTag();
}
two.mNameTwo.setText(dataBean.getTitle()+"");
mImageLoader.displayImage(dataBean.getThumbnail_pic_s(),two.mImageTwo,mDisplayImageOp);
break;
}
return convertView;
}
@Override
public int getItemViewType(int position) {
if (position % 2 == 0) {
return ITEM_ONE;
} else {
return ITEM_TWO;
}
}
@Override
public int getViewTypeCount() {
return 2;
}
class HolderOne {
private TextView mNameOne;
private ImageView mImageOne;
}
class HolderTwo {
private TextView mNameTwo;
private ImageView mImageTwo;
}
}
//适配器的xml
//item_one
<ImageView
android:id="@+id/Item_One_Image"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@mipmap/ic_launcher_round" />
<TextView
android:id="@+id/Item_One_Text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="heheda" />
//item_two <?xml version="1.0" encoding="utf-8"?>
<TextView
android:id="@+id/Item_Two_Text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="heheda" />
<ImageView
android:id="@+id/Item_Two_Image"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@mipmap/ic_launcher_round" />
//BFragment的xml
<?xml version="1.0" encoding="utf-8"?><!-- TODO: Update blank fragment layout -->
<android.support.design.widget.TabLayout
android:id="@+id/BFrag_Tab"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<android.support.v4.view.ViewPager
android:id="@+id/BFrag_Pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/BFrag_Tab"/>
//BFragment的类
package com.zhuyue.dell.monilianxi;
import android.os.Bundle;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.zhuyue.dell.monilianxi.Badapter.MyPagerAdapter;
import java.util.ArrayList;
/**
-
A simple {@link Fragment} subclass.
*/
public class BFragment extends Fragment {
private View mView;
private TabLayout BFage_Tab;
private ViewPager BFage_Pager;
private ArrayList mList = new ArrayList<>();
private ArrayList mTitle = new ArrayList<>();@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
mView = inflater.inflate(R.layout.fragment_b, container, false);
initData();
initView(mView);
return mView;
}private void initData() {
mList.add(new AFragment());
mList.add(new AFragment());
mTitle.add(“新闻”);
mTitle.add(“娱乐”);
}private void initView(View mView) {
BFage_Tab = mView.findViewById(R.id.BFrag_Tab);
BFage_Pager = mView.findViewById(R.id.BFrag_Pager);
BFage_Pager.setAdapter(new MyPagerAdapter(getChildFragmentManager(), mList, mTitle));
BFage_Tab.setupWithViewPager(BFage_Pager);}
}
//menu文件 的main.xml