tablayout


Main3Activity


package com.example.zhaoukaolainxi;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;

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

public class Main3Activity extends Fragment implements AdapterView.OnItemClickListener {

    private TabLayout tabLayout;
    private ViewPager viewPager;
    private List<String> list = new ArrayList<String>();
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.activity_main3, null);
        tabLayout = (TabLayout)view.findViewById(R.id.tablayout);
        viewPager = (ViewPager) view.findViewById(R.id.vp);
        list.add("社会新闻");
        list.add("国内新闻");
        list.add("国际新闻");
        list.add("娱乐新闻");
        list.add("国内体育行业");
        list.add("NBA动态");
        list.add("国足资讯");

        //tabLayout.setTabMode(TabLayout.MODE_FIXED);
        tabLayout.setupWithViewPager(viewPager);

        viewPager.setAdapter(new FragmentPagerAdapter(getChildFragmentManager()) {

            @Override
            public CharSequence getPageTitle(int position) {
                return list.get(position);
            }

            @Override
            public Fragment getItem(int position) {
                NewsFragment newsFragments = new NewsFragment();
                Bundle bundle = new Bundle();
                if(list.get(position).equals("社会新闻")){
                    bundle.putString("name","social");
                }else if (list.get(position).equals("国内新闻")){
                    bundle.putString("name","guonei");
                }else if (list.get(position).equals("国际新闻")){
                    bundle.putString("name","world");
                }else if (list.get(position).equals("娱乐新闻")){
                    bundle.putString("name","huabian");
                }else if (list.get(position).equals("国内体育行业")){
                    bundle.putString("name","tiyu");
                }else if (list.get(position).equals("NBA动态")){
                    bundle.putString("name","nba");
                }else if (list.get(position).equals("国足资讯")){
                    bundle.putString("name","football");
                }
                newsFragments.setArguments(bundle);
                return newsFragments;
            }

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

        return view;
    }

    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

    }
}
<android.support.design.widget.TabLayout
    android:id="@+id/tablayout"
    android:layout_width="match_parent"
    android:layout_height="40dp"
    app:tabGravity="center"
    app:tabIndicatorColor="#ff0000"
    app:tabMode="scrollable"
    app:tabSelectedTextColor="#ff0000"
    app:tabTextColor="#00ff00"></android.support.design.widget.TabLayout>

<android.support.v4.view.ViewPager
    android:id="@+id/vp"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_below="@+id/tablayout"></android.support.v4.view.ViewPager>

 
 
NewsFragment

package com.example.zhaoukaolainxi;

import android.os.AsyncTask;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;

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

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.List;

public class NewsFragment extends Fragment {
    private PullToRefreshListView pu;
    private String pagesize="20";
    private int  page=1;
    private String mstrings;




    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View inflate = inflater.inflate(R.layout.news, null);


        pu  = (PullToRefreshListView) inflate.findViewById(R.id.list_view);
        pu.getRefreshableView();
        pu.setMode(PullToRefreshBase.Mode.BOTH);
        pu.setScrollingWhileRefreshingEnabled(true);

        pu.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
            //   //完成下拉刷新操作

            @Override
            public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
                refreshView.postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        page=1;
                        getDataFromNet(mstrings,pagesize,page);
                        pu.onRefreshComplete();
                    }
                }, 2000);




            }
            //完成上拉刷新操作

            @Override
            public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
                page++;
                refreshView.postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        if(mstrings!=null&&pagesize!=null){

                            getDataFromNet(mstrings,pagesize,page);
                        }

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

            }
        });



        return inflate;

    }
    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        Bundle bundle = getArguments();
        mstrings = bundle.getString("name","social");
        getDataFromNet(mstrings,pagesize,page);
    }

    private void getDataFromNet(final String string, final String pagesize, final int page) {
        AsyncTask<Void, Void, String> asyncTask = new AsyncTask<Void, Void, String>() {

            @Override
            protected String doInBackground(Void... voids) {
                // http://api.tianapi.com/wxnew/?key=71e58b5b2f930eaf1f937407acde08fe&num=10&page=8
                //http://api.kkmh.com/v1/topic_new/discovery_module_list/210?sa_event=eyJwcm9qZWN0Ijoia3VhaWthbl9hcHAiLCJ0aW1lIjoxNDg3OTE2MTcwNjE5LCJwcm9wZXJ0aWVzIjp7IiRvc192ZXJzaW9uIjoiNC4yLjIiLCJHZW5kZXJUeXBlIjoi5peg5rOV6I635Y-WIiwiVHJpZ2dlckl0ZW0iOjE3LCJWaXNpdFBhZ2VOYW1lIjoi5paw5L2c5LiK5p62IiwiJGxpYl92ZXJzaW9uIjoiMS42LjM0IiwiJG5ldHdvcmtfdHlwZSI6IldJRkkiLCIkd2lmaSI6dHJ1ZSwiJG1hbnVmYWN0dXJlciI6InNhbXN1bmciLCJUcmlnZ2VySXRlbU5hbWUiOiLmlrDkvZzkuIrmnrYiLCIkc2NyZWVuX2hlaWdodCI6NTc2LCJMaXN0VHlwZSI6IuaXp-eJiCIsIlByb3BlcnR5RXZlbnQiOiJSZWFkTGlzdCIsIlRyaWdnZXJPcmRlck51bWJlciI6MCwiRmluZFRhYk5hbWUiOiLmjqjojZAiLCJhYnRlc3RfZ3JvdXAiOjQ2LCIkc2NyZWVuX3dpZHRoIjoxMDI0LCIkb3MiOiJBbmRyb2lkIiwiVHJpZ2dlckl0ZW1UeXBlIjowLCJUcmlnZ2VyUGFnZSI6IkZpbmRQYWdlIiwiJGNhcnJpZXIiOiJDTUNDIiwiJG1vZGVsIjoiR1QtUDUyMTAiLCIkYXBwX3ZlcnNpb24iOiIzLjguMSJ9LCJ0eXBlIjoidHJhY2siLCJkaXN0aW5jdF9pZCI6IkE6OTA1MTA0Mjc2Mzc1NTEwOSIsIm9yaWdpbmFsX2lkIjoiQTo5MDUxMDQyNzYzNzU1MTA5IiwiZXZlbnQiOiJSZWFkTGlzdCJ9&style=2&offset=0&limit=3
                String path = "http://api.tianapi.com/"+ URLEncoder.encode(string)+"/?key=71e58b5b2f930eaf1937407acde08fe&num="+pagesize+"&page="+page+"";
                Log.e("wzq", "doInBackground: "+path);
                try {
                    URL url = new URL(path);
                    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                    connection.setRequestMethod("GET");
                    connection.setReadTimeout(5000);
                    connection.setConnectTimeout(5000);
                    if ((connection.getResponseCode() == 200)) {
                        InputStream inputStream = connection.getInputStream();
                        String json = streamToString(inputStream,"utf-8");
                        return json;
                    }
                } catch (java.io.IOException e) {
                    e.printStackTrace();
                }
                return "";
            }

            @Override
            protected void onPostExecute(String json) {
                Gson gson = new Gson();
                Bea bean = gson.fromJson(json, Bea.class);
                List<Bea.NewslistBean> list = bean.getNewslist();
                if (list != null) {
                    MyAdapter1 myAdapter = new MyAdapter1(getActivity(), list);
                    pu.setAdapter(myAdapter);
                }
            }
        };
        asyncTask.execute();
    }
    private String streamToString(InputStream inputStream,String charset) {
        try {
            InputStreamReader inputStreamReader = new InputStreamReader(inputStream,charset);

            BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
            String s = null;
            StringBuilder builder = new StringBuilder();
            while ((s = bufferedReader.readLine()) != null){
                builder.append(s);
            }

            bufferedReader.close();
            return builder.toString();

        } catch (Exception e) {
            e.printStackTrace();
        }

        return  null;
    }

}

 
 
<com.handmark.pulltorefresh.library.PullToRefreshListView
    android:id="@+id/list_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"

    ></com.handmark.pulltorefresh.library.PullToRefreshListView>

 
Bean
 
 
MyAdapter1

package com.example.zhaoukaolainxi;

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.nostra13.universalimageloader.core.ImageLoader;

import java.util.List;

/**
 * Created by 呵呵 on 2017/10/26.
 */

public class MyAdapter1 extends BaseAdapter{
    Context context;
    private List<Bea.NewslistBean> list;

    public MyAdapter1(Context context, List<Bea.NewslistBean> list) {
        this.context = context;
        this.list = list;
    }
    //视图数量
    @Override
    public int getCount() {
        return list.size();
    }
    //视图
    @Override
    public Object getItem(int i) {
        return list.get(i);
    }
    //视图id
    @Override
    public long getItemId(int i) {
        return i;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder holder = null;
        if(convertView == null){
            holder = new ViewHolder();
            //获得布局
            convertView = View.inflate(context,R.layout.item,null);
            //初始化控件


            holder.tv = (TextView) convertView.findViewById(R.id.tv1);
            holder.tv1 = (TextView) convertView.findViewById(R.id.tv2);
            holder.img = (ImageView) convertView.findViewById(R.id.img);
            convertView.setTag(holder);
        }else{
            holder = (ViewHolder) convertView.getTag();
        }
        //显示获得的数据显示在listview中


        holder.tv.setText(list.get(position).getTitle());
        holder.tv1.setText(list.get(position).getCtime());
        //显示图片在listview中
        ImageLoader.getInstance().displayImage(list.get(position).getPicUrl(),holder.img);
        return convertView;
    }


    //优化
    class ViewHolder{
        TextView tv,tv1;
        ImageView img;
    }


<ImageView
    android:id="@+id/img"
    android:layout_width="100dp"
    android:layout_height="100dp" />

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="100dp"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_below="@+id/tv1">

    <TextView
        android:id="@+id/tv1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <TextView
        android:id="@+id/tv2"
        android:layout_width="150dp"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true" />
</RelativeLayout>

 
 
上一个掉
<ImageView
    android:id="@+id/img"
    android:layout_width="100dp"
    android:layout_height="50dp"
    android:src="@mipmap/ic_launcher"/>
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <TextView
        android:id="@+id/tv_1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="你好"/>
    <TextView
        android:id="@+id/tv_2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="我不好"
        android:layout_marginTop="8dp"/>
</LinearLayout>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值