<android.support.v4.widget.DrawerLayout
android:id="@+id/Drawer_layout"
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=".MainActivity">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<FrameLayout
android:id="@+id/Framelayout"
android:layout_width="match_parent"
android:layout_height="match_parent"></FrameLayout>
</RelativeLayout>
<LinearLayout
android:id="@+id/zuo_layout"
android:layout_width="200dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="@color/colorPrimary"
android:orientation="vertical">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:src="@mipmap/ic_launcher_round" />
<TextView
android:layout_marginTop="50dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:gravity="center"
android:text="wyx" />
<TextView
android:layout_marginTop="50dp"
android:id="@+id/xListView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="xListView" />
<TextView
android:layout_marginTop="50dp"
android:id="@+id/Tab_Layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TabLayout" />
</LinearLayout>
</android.support.v4.widget.DrawerLayout>
//mainactivity
package com.bawei.wangyaxiao.dierzhou_moni;
import android.os.Bundle;
import android.support.v4.app.FragmentManager;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.bawei.wangyaxiao.dierzhou_moni.fragment.OneFragment;
import com.bawei.wangyaxiao.dierzhou_moni.fragment.TwoFragment;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private OneFragment oneFragment;
private TwoFragment twoFragment;
private TextView xListView;
private TextView Tab_Layout;
private DrawerLayout Drawer_layout;
private FragmentManager manager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initData();
initView();
}
private void initData() {
oneFragment = new OneFragment();
twoFragment = new TwoFragment();
}
private void initView() {
xListView = (TextView) findViewById(R.id.xListView);
xListView.setOnClickListener(this);
Tab_Layout = (TextView) findViewById(R.id.Tab_Layout);
Tab_Layout.setOnClickListener(this);
Drawer_layout = (DrawerLayout) findViewById(R.id.Drawer_layout);
manager = getSupportFragmentManager();
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.xListView:
manager.beginTransaction().replace(R.id.Framelayout,oneFragment).commit();
Drawer_layout.closeDrawers();
break;
case R.id.Tab_Layout:
manager.beginTransaction().replace(R.id.Framelayout,twoFragment).commit();
Drawer_layout.closeDrawers();
break;
}
}
}
//onefragment
package com.bawei.wangyaxiao.dierzhou_moni.fragment;
import android.content.Context;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.text.format.DateFormat;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Adapter;
import com.bawei.wangyaxiao.dierzhou_moni.R;
import com.bawei.wangyaxiao.dierzhou_moni.adapter.MyAdapter;
import com.bawei.wangyaxiao.dierzhou_moni.data.MyData;
import com.bawei.wangyaxiao.dierzhou_moni.utils.HttpUtils;
import com.bawei.wangyaxiao.mylibrary.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.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
-
A simple {@link Fragment} subclass.
*/
public class OneFragment extends Fragment implements XListView.IXListViewListener {private String mUrl = “http://www.xieast.com/api/news/news.php?page=”;
private View mView;
private Context mContext;
private XListView xListView;
private List<MyData.DataBean> mList=new ArrayList<>();
private int start=1;
private MyAdapter mAdapter;@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
mView = inflater.inflate(R.layout.fragment_one, null);
mContext = getActivity().getApplicationContext();
initView(mView);
mAdapter=new MyAdapter(mContext,mList);
xListView.setAdapter(mAdapter);new MyTask().execute(mUrl+start); return mView;
}
private void initView(View mView) {
xListView = mView.findViewById(R.id.x_listview);
xListView.setPullLoadEnable(true);
xListView.setXListViewListener(this);
}public void stop(){
xListView.stopRefresh();
xListView.stopLoadMore();
// xListView.setRefreshTime(“刚刚”);
Date date=new Date();
CharSequence format = DateFormat.format(“yyyy-MM-dd日 hh:mm:ss”, date);
xListView.setRefreshTime((String) format);
}@Override
public void onRefresh() {
mList.clear();
start=1;
new MyTask().execute(mUrl+start);
stop();
}@Override
public void onLoadMore() {
start++;
new MyTask().execute(mUrl+start);
stop();
}class MyTask extends AsyncTask<String,Void,List<MyData.DataBean>>{
@Override protected List<MyData.DataBean> doInBackground(String... strings) { try { URL url = new URL(strings[0]); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); if(connection.getResponseCode()==200){ InputStream stream = connection.getInputStream(); Gson gson = new Gson(); MyData myData = gson.fromJson(new BufferedReader(new InputStreamReader(stream)), MyData.class); return myData.getData(); } } catch (Exception e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(List<MyData.DataBean> dataBeans) {
// super.onPostExecute(dataBeans);
mList.addAll(dataBeans);
mAdapter.notifyDataSetChanged();
}
}
}
//布局fragmentone
<?xml version="1.0" encoding="utf-8"?>LinearLayout xmlns:android=“http://schemas.android.com/apk/res/android”
xmlns:tools=“http://schemas.android.com/tools”
android:layout_width=“match_parent”
android:layout_height=“match_parent”
tools:context=".fragment.OneFragment">
<!-- TODO: Update blank fragment layout -->
<com.bawei.wangyaxiao.mylibrary.view.XListView
android:id="@+id/x_listview"
android:layout_width=“match_parent”
android:layout_height=“wrap_content”></com.bawei.wangyaxiao.mylibrary.view.XListView>
//myadapter
package com.bawei.wangyaxiao.dierzhou_moni.adapter;
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.bawei.wangyaxiao.dierzhou_moni.R;
import com.bawei.wangyaxiao.dierzhou_moni.data.MyData;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.display.CircleBitmapDisplayer;
import java.util.List;
public class MyAdapter extends BaseAdapter {
private static final int ONE=0;
private static final int TWO=1;
private Context mContext;
private List<MyData.DataBean> mList;
private ImageLoader mimageLoader=ImageLoader.getInstance();
private DisplayImageOptions mdisplayImageOp;
public MyAdapter(Context mContext, List<MyData.DataBean> mList) {
this.mContext = mContext;
this.mList = mList;
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 int getItemViewType(int position) {
if(position%2==0){
return ONE;
}else{
return TWO;
}
}
@Override
public int getViewTypeCount() {
return 2;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder1 holder1=null;
ViewHolder2 holder2=null;
int type = getItemViewType(position);
switch (type){
case ONE:{
if(convertView==null){
holder1=new ViewHolder1();
convertView=View.inflate(mContext,R.layout.list_item1,null);
holder1.img1=convertView.findViewById(R.id.Item_One_Image);
holder1.tv1=convertView.findViewById(R.id.Item_One_Text);
convertView.setTag(holder1);
}else{
holder1=(ViewHolder1)convertView.getTag();
}
mimageLoader.displayImage(mList.get(position).getThumbnail_pic_s(),holder1.img1,mdisplayImageOp);
holder1.tv1.setText(mList.get(position).getTitle());
}
break;
case TWO: {
if(convertView==null){
holder2=new ViewHolder2();
convertView=View.inflate(mContext,R.layout.list_item2,null);
holder2.img2=convertView.findViewById(R.id.Item_Two_Image);
holder2.tv2=convertView.findViewById(R.id.Item_Two_Text);
convertView.setTag(holder2);
}else{
holder2=(ViewHolder2)convertView.getTag();
}
holder2.tv2.setText(mList.get(position).getTitle());
mimageLoader.displayImage(mList.get(position).getThumbnail_pic_s(),holder2.img2,mdisplayImageOp);
}
break;
}
return convertView;
}
static class ViewHolder1{
ImageView img1;
TextView tv1;
}
static class ViewHolder2{
TextView tv2;
ImageView img2;
}
}
//imageloader 注册 Mapp
package com.bawei.wangyaxiao.dierzhou_moni;
import android.app.Application;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
public class Mapp extends Application {
@Override
public void onCreate() {
super.onCreate();
ImageLoaderConfiguration imageLoaderConfiguration = ImageLoaderConfiguration.createDefault(this);
ImageLoader.getInstance().init(imageLoaderConfiguration);
}
}
//项目清单
<?xml version="1.0" encoding="utf-8"?>manifest xmlns:android=“http://schemas.android.com/apk/res/android”
package=“com.bawei.wangyaxiao.dierzhou_moni”>
uses-permission android:name=“android.permission.INTERNET”/>
application
android:name=".Mapp"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
//twofragment
package com.bawei.wangyaxiao.dierzhou_moni.fragment;
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.bawei.wangyaxiao.dierzhou_moni.R;
import com.bawei.wangyaxiao.dierzhou_moni.pageadapter.MyPageAdapter;
import java.util.ArrayList;
import java.util.List;
/**
-
A simple {@link Fragment} subclass.
*/
public class TwoFragment extends Fragment {private List mTitle=new ArrayList<>();
private List mList=new ArrayList<>();
private ViewPager viewPager;
private TabLayout tabLayout;@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View mview = inflater.inflate(R.layout.fragment_two, null);
initData();
initView(mview);return mview;
}
private void initView(View mview) {
tabLayout = mview.findViewById(R.id.BFrag_tab);
viewPager = mview.findViewById(R.id.BFrag_pager);viewPager.setAdapter(new MyPageAdapter(getChildFragmentManager(),mList,mTitle)); tabLayout.setupWithViewPager(viewPager);
}
private void initData() {
mList.add(new OneFragment());
mList.add(new OneFragment());
mTitle.add(“新闻”);
mTitle.add(“娱乐”);
}
}
//布局 twofragment
<?xml version="1.0" encoding="utf-8"?>RelativeLayout xmlns:android=“http://schemas.android.com/apk/res/android”
xmlns:tools=“http://schemas.android.com/tools”
android:layout_width=“match_parent”
android:layout_height=“match_parent”
tools:context=".fragment.TwoFragment">
<android.support.design.widget.TabLayout
android:id="@+id/BFrag_tab"
android:layout_width=“match_parent”
android:layout_height=“wrap_content”></android.support.design.widget.TabLayout>
<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"></android.support.v4.view.ViewPager>
//第二个页面适配器 mypageadapter
package com.bawei.wangyaxiao.dierzhou_moni.pageadapter;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import java.util.ArrayList;
import java.util.List;
public class MyPageAdapter extends FragmentPagerAdapter {
private List mList;
private List mTitle;
public MyPageAdapter(FragmentManager fm,List<Fragment> list, List<String> title) {
super(fm);
this.mList=list;
this.mTitle=title;
}
@Override
public Fragment getItem(int i) {
return mList.get(i);
}
@Override
public int getCount() {
return mList.size();
}
@Nullable
@Override
public CharSequence getPageTitle(int position) {
return mTitle.get(position);
}
}
//xlistview 布局
<?xml version="1.0" encoding="utf-8"?>LinearLayout xmlns:android=“http://schemas.android.com/apk/res/android”
android:orientation=“horizontal” android:layout_width=“match_parent”
android:layout_height=“match_parent”>
ImageView
android:id="@+id/Item_One_Image"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@mipmap/ic_launcher_round" />
<TextView
android:gravity="center_horizontal"
android:textColor="#000000"
android:id="@+id/Item_One_Text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>