xmk

//MainActivity

private HorizontalScrollView hs;
private ViewPager viewPager;
private Button button;
private LinearLayout layout;
List<TextView> list;
private ArrayList<ChannelBean> channelBeans;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    initview();
    initData();
}

private void initData() {
    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(this);
        textView.setText(channelBeans.get(i).getName()+"");
        textView.setTextSize(15);
        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(40,10,40,10);
        layout.addView(textView,layoutParams);
        list.add(textView);
    }
    viewPager.setAdapter(new MyAdapter(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;
            hs.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(MainActivity.this,channelBeans);
        }
    });

}
private void initview() {
    hs = findViewById(R.id.hs);
    layout = findViewById(R.id.linear);
    viewPager = findViewById(R.id.viewpager);
    button = findViewById(R.id.btn);
}

private class MyAdapter extends FragmentPagerAdapter {
    public MyAdapter(FragmentManager supportFragmentManager) {
        super(supportFragmentManager);
    }

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

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

//Fragmeng
private View view;
private String path="http://www.yulin520.com/a2a/impressApi/news/mergeList?pageSize=15&page=";
private int page = 1;
private PullToRefreshListView pull;
private XBanner banner;
private MyBase base;
private HttpUtils httpUtils = HttpUtils.getInstance();
private List<Bean.DataBean> list = new ArrayList<>();
private List<String> imgs = new ArrayList<>();
private Handler handler = new Handler();
public static Fragment01 getInstance(String title) {
    Fragment01 fragment01 = new Fragment01();
    Bundle bundle = new Bundle();
    bundle.putString("title",title);
    fragment01.setArguments(bundle);
   return fragment01;
}

@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    view = inflater.inflate(R.layout.fragment01,container,false);
    banner = view.findViewById(R.id.banner);
    Bundle a = getArguments();
    String title = a.getString("title");
    TextView textView = new TextView(getActivity());
    textView.setText(title);
    imgs.add("http://img5.imgtn.bdimg.com/it/u=357293603,2414818182&fm=27&gp=0.jpg");
    imgs.add("http://www.cctv.com/program/dhc/20050207/images/100815_b2.jpg");
    imgs.add("https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=3227877552,1311244730&fm=27&gp=0.jpg");

    banner.setData(imgs,null);
    banner.setmAdapter(new XBanner.XBannerAdapter() {
        @Override
        public void loadBanner(XBanner banner, View view, int position) {
            Glide.with(getActivity()).load(imgs.get(position)).into((ImageView)view);
        }
    });
    initview();
    initData();
    return view;
}

private void initview() {
    pull = view.findViewById(R.id.pull);
    pull.setMode(PullToRefreshBase.Mode.BOTH);
    ILoadingLayout loadingLayout = pull.getLoadingLayoutProxy(true,false);
    loadingLayout.setPullLabel("下拉刷新");
    loadingLayout.setReleaseLabel("正在刷新");
    loadingLayout.setReleaseLabel("放开刷新");
    ILoadingLayout layout = pull.getLoadingLayoutProxy(false,true);
    layout.setPullLabel("上拉加载");
    layout.setRefreshingLabel("正在加载");
    layout.setRefreshingLabel("放开加载");
    pull.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
        @Override
        public void onPullDownToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) {
            page = 1;
            initData();
            handler.postDelayed(new Runnable() {
                @Override
                public void run() {
                    pull.onRefreshComplete();
                }
            },2000);
        }
        @Override
        public void onPullUpToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) {
            page = page+1;
            initData();
            handler.postDelayed(new Runnable() {
                @Override
                public void run() {
                    pull.onRefreshComplete();
                }
            },2000);
        }
    });
    base = new MyBase(getActivity(),list);
    pull.setAdapter(base);

}
private void initData() {
    String url = path+page;
    httpUtils.getdata(url);
    httpUtils.setHttpLicener(new HttpUtils.HttpLicener() {
        @Override
        public void getjsondata(String json) {
            Gson gson = new Gson();
            Bean bean = gson.fromJson(json, Bean.class);
            List<Bean.DataBean> data = bean.getData();
            if(page==1){
                list.clear();
            }
            list.addAll(data);
            base.notifyDataSetChanged();

        }
    });

}
//MyBase
private Context context;
private List<Bean.DataBean> list;

public MyBase(Context context, List<Bean.DataBean> list) {
    this.context = context;
    this.list = list;
}

@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) {
    ViewHolder holder;
    if(convertView == null){
        convertView = View.inflate(context,R.layout.mybase,null);
        holder = new ViewHolder();
        holder.textView = convertView.findViewById(R.id.text);
        holder.imageView = convertView.findViewById(R.id.img);
        convertView.setTag(holder);
    }else{
        holder = (ViewHolder) convertView.getTag();
    }
    holder.textView.setText(list.get(position).getTitle());
    ImageLoader.getInstance().displayImage(list.get(position).getImg(),holder.imageView,MyAplicin.getOptions());
    return convertView;
}
class ViewHolder{
    TextView textView;
    ImageView imageView;
}

//HttpUtils
private HttpLicener httpLicener;
private static HttpUtils httpUtils;
public static HttpUtils getInstance() {
    if(httpUtils==null){
        httpUtils = new HttpUtils();
    }
    return httpUtils;
}
public void getdata(String url){
    MyAsynctask asynctask = new MyAsynctask();
    asynctask.execute(url);
}
 class MyAsynctask extends AsyncTask<String,Void,String> {
    String json = ""; 
     @Override
     protected String doInBackground(String... strings) {

         try {
             URL url = new URL(strings[0]);
             HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
             urlConnection.setRequestMethod("GET");
             urlConnection.setConnectTimeout(5000);
             if(urlConnection.getResponseCode()==200){
                 InputStream inputStream = urlConnection.getInputStream();
                 json = StreamToString(inputStream);
                 
             }
         } catch (Exception e) {
             e.printStackTrace();
         }


         return json;
     }

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

private String StreamToString(InputStream inputStream) throws IOException {
    InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
    BufferedReader reader = new BufferedReader(inputStreamReader);
    String s = "";
    StringBuilder builder = new StringBuilder();
    while ((s=reader.readLine())!=null){
        builder.append(s);
    }
    reader.close();
    return builder.toString();
}

public interface HttpLicener {
    void getjsondata(String json);
}

public void setHttpLicener(HttpLicener httpLicener) {
    this.httpLicener = httpLicener;
}
//MyApplice

1.ImageLoader.getInstance().init(config);
2.return options;




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值