pindaoguanli

package com.example.demo20180628_demo3;

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.RadioGroup;

import java.util.ArrayList;
import java.util.List;

import fragment.Fragmentfive;
import fragment.Fragmentfour;
import fragment.Fragmentone;
import fragment.Fragmentthree;
import fragment.Fragmenttwo;

public class MainActivity extends AppCompatActivity {
    private ViewPager viewPager;
    private RadioGroup radioGroup;
    private List<Fragment> list;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        viewPager = findViewById(R.id.ma_pager);
        radioGroup = findViewById(R.id.ma_group);
        list = new ArrayList<>();
        list.add(new Fragmentone());
        list.add(new Fragmenttwo());
        list.add(new Fragmentthree());
        list.add(new Fragmentfour());
        list.add(new Fragmentfive());
        viewPager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
            @Override
            public Fragment getItem(int position) {
                return list.get(position);
            }

            @Override
            public int getCount() {
                return list.size();
            }
        });
        viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
                
            }

            @Override
            public void onPageSelected(int position) {
                switch (position){
                    case 0:
                        radioGroup.check(R.id.but1);
                        break;
                    case 1:
                        radioGroup.check(R.id.but2);
                        break;
                    case 2:
                        radioGroup.check(R.id.but3);
                        break;
                    case 3:
                        radioGroup.check(R.id.but4);
                        break;
                    case 4:
                        radioGroup.check(R.id.but5);
                        break;
                    default:
                        break;
                }
            }

            @Override
            public void onPageScrollStateChanged(int state) {

            }
        });
        radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                switch (checkedId){
                    case R.id.but1:
                        viewPager.setCurrentItem(0);
                        break;
                    case R.id.but2:
                        viewPager.setCurrentItem(1);
                        break;
                    case R.id.but3:
                        viewPager.setCurrentItem(2);
                        break;
                    case R.id.but4:
                        viewPager.setCurrentItem(3);
                        break;
                    case R.id.but5:
                        viewPager.setCurrentItem(4);
                        break;
                    default:
                        break;
                }
            }
        });
    }

}

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
    android:orientation="vertical">

    <android.support.v4.view.ViewPager
        android:id="@+id/ma_pager"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="9"></android.support.v4.view.ViewPager>
    <RadioGroup
        android:id="@+id/ma_group"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:orientation="horizontal">
        <RadioButton
            android:id="@+id/but1"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:button="@null"
            android:gravity="center"
            android:text="首页"
            android:padding="10dp"/>
        <RadioButton
            android:id="@+id/but2"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:button="@null"
            android:gravity="center"
            android:text="本地"
            android:padding="10dp"/>
        <RadioButton
            android:id="@+id/but3"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:button="@null"
            android:gravity="center"
            android:text="视频"
            android:padding="10dp"/>
        <RadioButton
            android:id="@+id/but4"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:button="@null"
            android:gravity="center"
            android:text="直播"
            android:padding="10dp"/>
        <RadioButton
            android:id="@+id/but5"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:button="@null"
            android:gravity="center"
            android:text="订阅"
            android:padding="10dp"/>
    </RadioGroup>
</LinearLayout>


Fragmentong

package fragment;

import android.graphics.Color;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.HorizontalScrollView;
import android.widget.LinearLayout;
import android.widget.TextView;

import com.andy.library.ChannelActivity;
import com.andy.library.ChannelBean;
import com.example.demo20180628_demo3.R;

import java.util.ArrayList;
import java.util.List;

public class Fragmentone extends Fragment {
    private HorizontalScrollView horizontalScrollView;
    private LinearLayout linearLayout;
    private ViewPager viewPager;
    private Button button;
    private List<TextView> list;
    private ArrayList<ChannelBean> channelBeans;
    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragmentone,container,false);
        horizontalScrollView = view.findViewById(R.id.hs);
        linearLayout = view.findViewById(R.id.linear);
        viewPager = view.findViewById(R.id.fr_pager);
        button = view.findViewById(R.id.button);
        getData();
        return view;
    }

    public void getData() {
        list = new ArrayList<>();
        channelBeans = new ArrayList<>();
        channelBeans.add(new ChannelBean("头条",true));
        channelBeans.add(new ChannelBean("娱乐",true));
        channelBeans.add(new ChannelBean("科技",true));
        channelBeans.add(new ChannelBean("信息",true));
        channelBeans.add(new ChannelBean("八卦",true));
        channelBeans.add(new ChannelBean("北京",false));
        channelBeans.add(new ChannelBean("上海",false));
        channelBeans.add(new ChannelBean("天津",false));
        channelBeans.add(new ChannelBean("重庆",false));
        channelBeans.add(new ChannelBean("大大燕网",false));
        for (int i = 0; i < channelBeans.size(); i++){
            TextView textView = new TextView(getActivity());
            textView.setText(channelBeans.get(i).getName());
            textView.setTextSize(20);
            textView.setId(i+1000);
            textView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    int id = v.getId();
                    viewPager.setCurrentItem(id-1000);
                }
            });
            if (i == 0){
                textView.setTextColor(Color.RED);
            }else {
                textView.setTextColor(Color.BLACK);
            }
            LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(ViewPager.LayoutParams.WRAP_CONTENT, ViewPager.LayoutParams.WRAP_CONTENT);
            layoutParams.setMargins(50,10,50,10);
            linearLayout.addView(textView,layoutParams);
            list.add(textView);
        }
        viewPager.setAdapter(new Myadapter(getActivity().getSupportFragmentManager()));
        viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
                for (int i = 0; i < list.size(); i++){
                    if (position == i){
                        list.get(i).setTextColor(Color.RED);
                    }else{
                        list.get(i).setTextColor(Color.BLACK);
                    }
                    TextView textView = list.get(position);
                    int width = textView.getWidth()+10;
                    horizontalScrollView.scrollTo(width*position,0);
                }
            }

            @Override
            public void onPageSelected(int position) {

            }

            @Override
            public void onPageScrollStateChanged(int state) {

            }
        });
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ChannelActivity.startChannelActivity((AppCompatActivity) getActivity(),channelBeans);
            }
        });
    }
    class Myadapter extends FragmentPagerAdapter{

        public Myadapter(FragmentManager fm) {
            super(fm);
        }

        @Override
        public Fragment getItem(int position) {
            return Fragment1.getInstance(list.get(position).getText().toString());
        }

        @Override
        public int getCount() {
            return list.size();
        }
    }
}

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <HorizontalScrollView
        android:id="@+id/hs"
        android:layout_width="300dp"
        android:scrollbars="none"
        android:layout_height="40dp">
        <LinearLayout
            android:id="@+id/linear"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"></LinearLayout>
    </HorizontalScrollView>
    <android.support.v4.view.ViewPager
        android:id="@+id/fr_pager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@id/hs"></android.support.v4.view.ViewPager>

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentEnd="true"
        android:layout_alignParentTop="true"
        android:text="频道管理" />
</RelativeLayout>
Fragment1
package fragment;

import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;

import com.bumptech.glide.Glide;
import com.example.demo20180628_demo3.R;
import com.google.gson.Gson;
import com.stx.xhb.xbanner.XBanner;

import java.util.ArrayList;
import java.util.List;

import bean.MyBase;
import bean.UsersBean;
import http.HttpUtils;
import view.XListView;

public class Fragment1 extends Fragment {
    private XBanner xBanner;
    private String path = "http://www.wanandroid.com/tools/mockapi/6523/article_channel_list";
    private int page = 1;
    private List<String> list = new ArrayList<>();
    private List<UsersBean.DataBean.ArticleListBean> mlist = new ArrayList<>();
    private HttpUtils httpUtils;
    private XListView xListView;
    private MyBase myBase;
    public static Fragment getInstance(String title){
        Fragment1 fragment1 = new Fragment1();
        Bundle bundle = new Bundle();
        bundle.putString("title",title);
        fragment1.setArguments(bundle);
        return fragment1;
    }

    @Nullable
    @Override
    public View onCreateView(@NonNull final LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment1,container,false);
        xBanner = view.findViewById(R.id.xbanner);
        xListView = view.findViewById(R.id.xlistview);
        Bundle arguments = getArguments();
        list.add("https://stc-new.8531.cn/assets/20180626/1529978600270_5b319ee8159bb81749cf4d33.jpeg");
        list.add("https://stc-new.8531.cn/assets/20180625/1529887230415_5b3039fe159bb81749cf3308.jpeg");
        list.add("https://stc-new.8531.cn/assets/20180619/1529410545300_5b28f3f1159bb81749cec372.jpeg");
        list.add("https://stc-new.8531.cn/assets/20180615/1529030875339_5b2328db159bb81749ce6ad9.jpeg");
        list.add("https://stc-new.8531.cn/assets/20180614/1528947670511_5b21e3d6159bb81749ce55b6.jpeg");
        String title = arguments.getString("title");
        if (arguments.get("title").equals("头条")){
            xBanner.setData(list,null);
            xBanner.setmAdapter(new XBanner.XBannerAdapter() {
                @Override
                public void loadBanner(XBanner banner, View view, int position) {
                    Glide.with(getActivity()).load(list.get(position)).into((ImageView) view);
                }
            });
        }else if (arguments.get("title").equals("娱乐")){
            xBanner.setVisibility(View.GONE);
        }else if (arguments.get("title").equals("科技")){
            xBanner.setVisibility(View.GONE);
        }else if (arguments.get("title").equals("信息")){
            xBanner.setVisibility(View.GONE);
        }else if (arguments.get("title").equals("八卦")){
            xBanner.setVisibility(View.GONE);
        }else if (arguments.get("title").equals("北京")){
            xBanner.setVisibility(View.GONE);
        }else if (arguments.get("title").equals("上海")){
            xBanner.setVisibility(View.GONE);
        }else if (arguments.get("title").equals("天津")){
            xBanner.setVisibility(View.GONE);
        }else if (arguments.get("title").equals("重庆")){
            xBanner.setVisibility(View.GONE);
        }else if (arguments.get("title").equals("大大燕网")){
            xBanner.setVisibility(View.GONE);
        }
        initView();
        getData();
        return view;
    }

    private void initView() {
        xListView.setPullRefreshEnable(true);
        xListView.setPullLoadEnable(true);
        xListView.setXListViewListener(new XListView.IXListViewListener() {
            @Override
            public void onRefresh() {
                page = 1;
                getData();
            }

            @Override
            public void onLoadMore() {
                page += 1;
                getData();
            }
        });
        myBase = new MyBase(getActivity(),mlist);
        xListView.setAdapter(myBase);
    }

    public void getData() {
        httpUtils = HttpUtils.getInstance();
        httpUtils.getdata(path);
        httpUtils.getHttpListener(new HttpUtils.HttpListener() {
            @Override
            public void getjsondata(String json) {
                Gson gson = new Gson();
                UsersBean usersBean = gson.fromJson(json, UsersBean.class);
                List<UsersBean.DataBean.ArticleListBean> article_list = usersBean.getData().getArticle_list();
                if (page == 1){
                    mlist.clear();
                }
                mlist.addAll(article_list);
                myBase.notifyDataSetChanged();
                if (page == 1){
                    xListView.stopRefresh();
                }else{
                    xListView.stopLoadMore();
                }
            }
        });
    }
}

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <com.stx.xhb.xbanner.XBanner
        android:id="@+id/xbanner"
        android:layout_width="match_parent"
        android:layout_height="200dp"></com.stx.xhb.xbanner.XBanner>
    <view.XListView
        android:id="@+id/xlistview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"></view.XListView>
</LinearLayout>
HttpApplications
package http;

import android.app.Application;
import android.content.Context;
import android.graphics.Bitmap;
import android.os.Handler;


import com.example.demo20180628_demo3.R;
import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator;
import com.nostra13.universalimageloader.cache.memory.impl.LruMemoryCache;
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 com.nostra13.universalimageloader.core.assist.QueueProcessingType;
import com.nostra13.universalimageloader.core.display.RoundedBitmapDisplayer;
import com.nostra13.universalimageloader.utils.StorageUtils;

import java.io.File;

public class HttpApplications extends Application {
    private Context context;

    @Override
    public void onCreate() {
        super.onCreate();
        context = this;
        initImageLouder();
    }

    private void initImageLouder() {
        File cacheDir = StorageUtils.getCacheDirectory(context);  //缓存文件夹路径  
        ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context)
                .memoryCacheExtraOptions(480, 800) // default = device screen dimensions 内存缓存文件的最大长宽  
                .diskCacheExtraOptions(480, 800, null)  // 本地缓存的详细信息(缓存的最大长宽),最好不要设置这个
                .threadPriority(Thread.NORM_PRIORITY - 2) // default 设置当前线程的优先级  
                .tasksProcessingOrder(QueueProcessingType.FIFO) // default  
                .denyCacheImageMultipleSizesInMemory()
                .memoryCache(new LruMemoryCache(2 * 1024 * 1024)) //可以通过自己的内存缓存实现  
                .memoryCacheSize(2 * 1024 * 1024)  // 内存缓存的最大值  
                .memoryCacheSizePercentage(13) // default   
                .diskCacheSize(50 * 1024 * 1024) // 50 Mb sd卡(本地)缓存的最大值  
                .diskCacheFileCount(100)  // 可以缓存的文件数量   
                // default为使用HASHCODE对UIL进行加密命名, 还可以用MD5(new Md5FileNameGenerator())加密  
                .diskCacheFileNameGenerator(new Md5FileNameGenerator())
                .writeDebugLogs() // 打印debug log  
                .build(); //开始构建   
        ImageLoader.getInstance().init(config);
    }
    public static DisplayImageOptions getOptions(){
        DisplayImageOptions options = new DisplayImageOptions.Builder()
                .showImageOnLoading(R.mipmap.ic_launcher) // 设置图片下载期间显示的图片  
                .showImageForEmptyUri(R.mipmap.ic_launcher) // 设置图片Uri为空或是错误的时候显示的图片  
                .showImageOnFail(R.mipmap.ic_launcher) // 设置图片加载或解码过程中发生错误显示的图片  
                .resetViewBeforeLoading(false)  // default 设置图片在加载前是否重置、复位  
                .delayBeforeLoading(1000)  // 下载前的延迟时间  
                .cacheInMemory(true) // default  设置下载的图片是否缓存在内存中  
                .cacheOnDisk(true) // default  设置下载的图片是否缓存在SD卡中
                .imageScaleType(ImageScaleType.IN_SAMPLE_POWER_OF_2) // default 设置图片以如何的编码方式显示  
                .bitmapConfig(Bitmap.Config.ARGB_8888) // default 设置图片的解码类型
                //.displayer(new RoundedBitmapDisplayer(300)) // default  还可以设置圆角图片new RoundedBitmapDisplayer(20)  
                .handler(new Handler()) // default  
                .build();
        return options;
    }
}

HttpUtils

package http;

import android.os.AsyncTask;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

public class HttpUtils {
    private static HttpUtils httpUtils;
    private HttpListener httpListener;
    public static HttpUtils getInstance(){
        if (httpUtils == null){
            httpUtils = new HttpUtils();
        }
        return httpUtils;
    }
    public void getdata(String url){
        MyAsyncTask myAsyncTask = new MyAsyncTask();
        myAsyncTask.execute(url);
    }
    class MyAsyncTask extends AsyncTask<String,Void,String>{

        @Override
        protected String doInBackground(String... strings) {
            String json = "";
            try {
                URL url = new URL(strings[0]);
                HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                connection.setRequestMethod("GET");
                if (connection.getResponseCode() == 200){
                    InputStream inputStream = connection.getInputStream();
                    json = StreamToString(inputStream);
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            return json;
        }

        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);
            httpListener.getjsondata(s);
        }
    }

    private String StreamToString(InputStream inputStream) {
        InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
        BufferedReader reader = new BufferedReader(inputStreamReader);
        String s = null;
        StringBuilder builder = new StringBuilder();
        try {
            while ((s = reader.readLine())!=null){
                builder.append(s);
            }
            reader.close();
        }catch (Exception e){
            e.printStackTrace();
        }
        return builder.toString();
    }

    public interface HttpListener{
        void getjsondata(String json);
    }
    public void getHttpListener(HttpListener httpListener){
        this.httpListener = httpListener;
    }
}
MyBase


package bean;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

import com.example.demo20180628_demo3.R;
import com.nostra13.universalimageloader.core.ImageLoader;

import java.util.List;

import http.HttpApplications;

public class MyBase extends BaseAdapter {
    private Context context;
    private List<UsersBean.DataBean.ArticleListBean> list;
    private final int ONE_TIME = 0;
    private String s;
    public MyBase(Context context, List<UsersBean.DataBean.ArticleListBean> list) {
        this.context = context;
        this.list = list;
    }

    @Override
    public int getViewTypeCount() {
        return 1;
    }

    @Override
    public int getItemViewType(int position) {
        List<String> list_pics = list.get(position).getList_pics();
        for (int i = 0; i < list_pics.size(); i++){
            s = list_pics.get(i);
        }
        if (s != null){
            return ONE_TIME;
        }else{
            return ONE_TIME;
        }
        
    }

    @Override
    public int getCount() {
        return list.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) {
        int type = getItemViewType(position);
        if (type == ONE_TIME){
            ViewHolder holder;
            if (convertView == null){
                convertView = View.inflate(context, R.layout.mybase,null);
                holder = new ViewHolder();
                holder.textView = convertView.findViewById(R.id.textView);
                holder.imageView = convertView.findViewById(R.id.imageView);
                convertView.setTag(holder);
            }else{
                holder = (ViewHolder) convertView.getTag();
            }
            holder.textView.setText(list.get(position).getList_title());
            ImageLoader.getInstance().displayImage(s,holder.imageView, HttpApplications.getOptions());
            return convertView;
        }else{
            return null;
        }
    }
    class ViewHolder{
        TextView textView;
        ImageView imageView;
    }
}
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        app:srcCompat="@mipmap/ic_launcher" />

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_marginTop="36dp"
        android:layout_toEndOf="@+id/imageView"
        android:text="TextView" />
</RelativeLayout>
package com.example.pulltorefresh;


import android.os.Bundle;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.widget.ListView;


import com.google.gson.Gson;
import com.handmark.pulltorefresh.library.ILoadingLayout;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshListView;


import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;


public class MainActivity extends AppCompatActivity {


    private PullToRefreshListView pullToRefreshListView;
    private HttpUtils httpUtils = HttpUtils.getInstance();
    private String path = "http://www.yulin520.com/a2a/impressApi/news/mergeList?pageSize=15&page=";
    private int page =1;
    private List<UserBean.DataBean> list = new ArrayList<>();
    private MyBase adapter;
    private Handler handler = new Handler();


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //1.定义方法
        initView();


        getData();


    }
    //设置头部底部的视图
    private void initView() {
        //获取资源ID
        pullToRefreshListView = (PullToRefreshListView) findViewById(R.id.pull_listView);


        //2.设置模式   BOTH 可以上拉 下拉  pull_from_end代表上拉,pull_from_start代表下拉
        pullToRefreshListView.setMode(PullToRefreshBase.Mode.BOTH);


        //3.都是布尔类型  第一个如果为true 时  当前设置的就是头部  如果第二个为true设置的就是底部
        final ILoadingLayout startLoadding = pullToRefreshListView.getLoadingLayoutProxy(true,false);
        startLoadding.setPullLabel("下拉刷新");
        startLoadding.setRefreshingLabel("正在刷新");
        startLoadding.setReleaseLabel("放开刷新");
        ILoadingLayout endLoadding = pullToRefreshListView.getLoadingLayoutProxy(false,true);
        endLoadding.setPullLabel("上拉加载");
        endLoadding.setRefreshingLabel("正在加载");
        endLoadding.setReleaseLabel("放开加载");




        //4.接口回调上拉下拉
        pullToRefreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
            //11.在下拉完成后被回调
            @Override
            public void onPullDownToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) {
                page =1;
                getData();
                //12.
                handler.postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        //必须在异步中完成  在列表没有数据的时候,不再请求接口,调用当前方法
                        pullToRefreshListView.onRefreshComplete();
                    }
                },2000);




                //可以设置刷新的时间....
                startLoadding.setLastUpdatedLabel("上次更新时间:"+new SimpleDateFormat("HH:mm").format(new Date(System.currentTimeMillis())));//last最近的,最后一次update修改/更新


            }
            //11.在上拉完成后被回调
            @Override
            public void onPullUpToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) {


                page+=1;
                getData();
                //12.
                handler.postDelayed(new Runnable() {
                    @Override
                    public void run() {


                        pullToRefreshListView.onRefreshComplete();
                    }
                },2000);




            }
        });
        //9.创建适配器
        adapter = new MyBase(list,MainActivity.this);
        pullToRefreshListView.setAdapter(adapter);


    }




    //5.得到数据
    public void getData(){


        final String url = path+page;


        httpUtils.getdata(url);


        //6.接口回调得到数据
        httpUtils.setHttpListener(new HttpUtils.HttpListener() {
            @Override
            public void getjsondata(String json) {
                //开始解析
                Gson gson = new Gson();


                UserBean userBean = gson.fromJson(json, UserBean.class);
                //7.解析出来的数据
                List<UserBean.DataBean> data = userBean.getData();


                //8.在list集合中添加数据
                Log.i("TAG",data.size()+"");
                //如果是第一页的数据 清空集合
                if(page == 1){
                    list.clear();
                }
                //将请求到的数据刷新
                list.addAll(data);
                //10.刷新适配器
                adapter.notifyDataSetChanged();


            }
        });










    }






}

内容概要:本文详细探讨了基于MATLAB/SIMULINK的多载波无线通信系统仿真及性能分析,重点研究了以OFDM为代表的多载波技术。文章首先介绍了OFDM的基本原理和系统组成,随后通过仿真平台分析了不同调制方式的抗干扰性能、信道估计算法对系统性能的影响以及同步技术的实现与分析。文中提供了详细的MATLAB代码实现,涵盖OFDM系统的基本仿真、信道估计算法比较、同步算法实现和不同调制方式的性能比较。此外,还讨论了信道特征、OFDM关键技术、信道估计、同步技术和系统级仿真架构,并提出了未来的改进方向,如深度学习增强、混合波形设计和硬件加速方案。; 适合人群:具备无线通信基础知识,尤其是对OFDM技术有一定了解的研究人员和技术人员;从事无线通信系统设计与开发的工程师;高校通信工程专业的高年级本科生和研究生。; 使用场景及目标:①理解OFDM系统的工作原理及其在多径信道环境下的性能表现;②掌握MATLAB/SIMULINK在无线通信系统仿真中的应用;③评估不同调制方式、信道估计算法和同步算法的优劣;④为实际OFDM系统的设计和优化提供理论依据和技术支持。; 其他说明:本文不仅提供了详细的理论分析,还附带了大量的MATLAB代码示例,便于读者动手实践。建议读者在学习过程中结合代码进行调试和实验,以加深对OFDM技术的理解。此外,文中还涉及了一些最新的研究方向和技术趋势,如AI增强和毫米波通信,为读者提供了更广阔的视野。
管理员功能需求 用户管理 查看用户列表:显示所有用户基本信息 添加用户:支持输入新用户信息并保存至数据库 修改用户信息:支持选择用户并更新其信息 删除用户:支持从数据库中删除选定用户 实习报告成绩管理 查看实习报告列表:显示所有学生实习报告 批阅实习报告:支持选择报告并给出批阅意见和评分 查看实习成绩列表:显示所有学生实习成绩 录入实习成绩:支持选择学生并输入成绩 修改实习成绩:支持更新学生实习成绩 通知公告管理 发布通知公告:支持输入通知内容并发布至系统 管理通知公告:支持查看、编辑和删除已发布通知 教师功能需求 学生管理 查看所指导学生列表:显示教师负责的所有学生 查看学生实习情况:支持查看学生实习岗位、日志、报告等 实习报告批阅成绩录入 查看待批阅报告列表:显示教师待批阅的实习报告 批阅报告:支持选择报告并给出批阅意见和评分 通知公告查看 查看系统通知公告:显示系统发布的所有通知和公告 实习岗位管理 发布实习岗位:支持输入岗位信息并发布至系统 编辑实习岗位:支持更新已发布岗位信息 删除实习岗位:支持从系统中删除选定岗位 学生功能需求 个人信息管理 查看个人信息:显示学生基本信息 修改个人信息:支持更新学生信息 实习岗位查询与申请 查询实习岗位:显示所有可用实习岗位 申请实习岗位:支持选择岗位并提交申请 实习日志提交 提交实习日志:支持输入日志内容并提交至系统 查看实习日志:显示学生提交的实习日志 实习报告提交 提交实习报告:支持输入报告内容并提交至系统 查看实习报告:显示学生报告及批阅意见 通知公告查看 查看系统通知公告:显示系统发布的所有通知和公告
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值