综合anlie

//main.xml

<?xml version="1.0" encoding="utf-8"?>

<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"
    />

猜你喜欢

转载自blog.csdn.net/qq_43603325/article/details/83961525