toutiao

    xml 主布局

 

<?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">
    <RelativeLayout
        android:background="#f00"
        android:id="@+id/tt"
        android:layout_width="match_parent"
        android:layout_height="50dp">
      <TextView
          android:id="@+id/jrtt"
          android:text="今日头条"
          android:textSize="25sp"
          android:layout_marginTop="10dp"
          android:textColor="#fff"
          android:layout_width="wrap_content"
          android:layout_height="40dp" />
        <EditText
            android:layout_marginLeft="50dp"

            android:layout_toRightOf="@+id/jrtt"
            android:background="#fff"
            android:hint="这个是搜索"
            android:layout_width="150dp"
            android:layout_height="40dp" />
    </RelativeLayout>
    <RelativeLayout
        android:layout_below="@+id/tt"
        android:id="@+id/ralative"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_above="@+id/group"
        android:layout_alignParentStart="true">

        ></RelativeLayout>

    <RadioGroup
        android:id="@+id/group"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:orientation="horizontal">

        <RadioButton
            android:onClick="shouye"
            android:background="@drawable/button_selector"
            android:id="@+id/btn_01"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:button="@null"
            android:gravity="center"
            android:text="首页"
            android:textSize="30sp" />

        <RadioButton
            android:onClick="xinwen"
            android:background="@drawable/button_selector"
            android:id="@+id/btn_02"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:button="@null"
            android:gravity="center"
            android:text="新闻"
            android:textSize="30sp" />

        <RadioButton
            android:onClick="wode"
            android:background="@drawable/button_selector"
            android:id="@+id/btn_03"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:button="@null"
            android:gravity="center"
            android:text="我的"
            android:textSize="30sp" />
    </RadioGroup>


</RelativeLayout>
                    主界面 Maxinactivity

         

package com.example.jinritt;

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.view.View;

import com.example.jinritt.fragment.Shouye;
import com.example.jinritt.fragment.Wode;
import com.example.jinritt.fragment.Xinwen;

/**
 * Created by bawei on 2017/10/17.
 */

public class otherActivity extends AppCompatActivity {

    private Shouye fragment01;
    private Xinwen fragment02;
    private Wode fragment03;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_other);

        fragment01 = new Shouye();
        fragment02 = new Xinwen();
        fragment03 = new Wode();
    }

    public void shouye(View view){
        getSupportFragmentManager().beginTransaction().replace(R.id.ralative , fragment01).commit();
    }
    public  void xinwen(View view){
        getSupportFragmentManager().beginTransaction().replace(R.id.ralative , fragment02).commit();
    }
    public void wode(View view){
        getSupportFragmentManager().beginTransaction().replace(R.id.ralative , fragment03).commit();
    }


}
         

             首页的xml
    
<?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"
    android:id="@+id/fragment01"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">


    <android.support.design.widget.TabLayout
        android:id="@+id/tab_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:tabGravity="center"
        app:tabIndicatorColor="@color/colorAccent"
        app:tabMode="scrollable"
        app:tabSelectedTextColor="@color/colorPrimaryDark"
        app:tabTextColor="@color/colorPrimary"
        >
    </android.support.design.widget.TabLayout>
    <android.support.v4.view.ViewPager
        android:id="@+id/pager"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    </android.support.v4.view.ViewPager>


</LinearLayout>
        
              首页的activity

 
package com.example.jinritt.fragment;

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 com.example.jinritt.R;

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

/**
 * Created by bawei on 2017/10/17.
 */

public class Shouye extends Fragment {

    private TabLayout tab_layout;
    private ViewPager pager;
    private List<String> list;


    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.shouye, container, false);
        tab_layout = (TabLayout) view.findViewById(R.id.tab_layout);
        pager = (ViewPager) view.findViewById(R.id.pager);
        return view;
    }

    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        list = new ArrayList<>();
        list.add("头条");
        list.add("军事");
        list.add("娱乐");
        list.add("新闻");
        list.add("财经");
        list.add("体育");
        list.add("科技");

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

        @Override
        public CharSequence getPageTitle(int position) {

            return list.get(position);
        }

        @Override
        public Fragment getItem(int position) {
            NewsFragment newsFragment = new NewsFragment();
            Bundle bundle = new Bundle();

            bundle.putString("name","头条");
            newsFragment.setArguments(bundle);

            return newsFragment;




        }

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

    }
}



newfragment_layout xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <com.example.jinritt.view.XListView
        android:id="@+id/x_list_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"></com.example.jinritt.view.XListView>

</LinearLayout>






  NewFragment activity


package com.example.jinritt.fragment;

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 com.example.jinritt.R;
import com.example.jinritt.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.URL;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * Created by bawei on 2017/10/17.
 */
public class NewsFragment extends Fragment implements XListView.IXListViewListener {
   private List<DataDataBean.ResultBean.DataBean> list=new ArrayList<>();
    private XListView x_list_view;
    private String name;
    private MyAdapter myAdapter;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.newsfragment, container, false);
        x_list_view = (XListView) view.findViewById(R.id.x_list_view);
        x_list_view.setPullRefreshEnable(true);
        x_list_view.setPullLoadEnable(true);
        x_list_view.setXListViewListener(this);
          return view;
    }

    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        name = getArguments().getString("name", "");

        //判断
        if (name.equals("头条")){
            name = "top";
        }else if (name.equals("军事")){
            name = "junshi";
        }else if (name.equals("娱乐")){
            name = "shehui";
        }else if (name.equals("新闻")){
            name = "caijing";
        }else if (name.equals("财经")){
            name = "guonei";
        }
        getDataFromNet(name);
    }

    private void getDataFromNet(final String name) {
        AsyncTask<Void, Void, String> asyncTask = new AsyncTask<Void, Void, String>() {
            @Override
            protected String doInBackground(Void... voids) {
                try {
                    URL url = new URL("http://v.juhe.cn/toutiao/index?type=" +name + "&key=c4479ad58f41e7f78a8fa073d0b1f1b5");

                    HttpURLConnection connection = (HttpURLConnection) url.openConnection();

                    connection.setRequestMethod("GET");
                    connection.setReadTimeout(5000);
                    connection.setConnectTimeout(5000);

                    //获取
                    int responseCode = connection.getResponseCode();
                    if (responseCode == 200) {
                        InputStream inputStream = connection.getInputStream();

                        String json = streamToString(inputStream, "utf-8");

                        //打印字符串
                        Log.i("---", json);

                        return json;
                    }

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

            }


            @Override
            protected void onPostExecute(String s) {
                Gson gson = new Gson();
                DataDataBean dataDataBean = gson.fromJson(s, DataDataBean.class);
                        list.addAll(dataDataBean.getResult().getData());
                  setAdapter();
            }
        };
asyncTask.execute();

    }
    private void setAdapter() {
        if (myAdapter == null) {
            myAdapter = new MyAdapter(getActivity(), list);
            x_list_view.setAdapter(myAdapter);

        } else {
            myAdapter.notifyDataSetChanged();
        }
    }
    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;
    }

    @Override
    public void onRefresh() {
        AsyncTask<Void, Void, String> asyncTask = new AsyncTask<Void, Void, String>() {
            @Override
            protected String doInBackground(Void... voids) {
                try {
                    URL url = new URL("http://v.juhe.cn/toutiao/index?type=top&key=c4479ad58f41e7f78a8fa073d0b1f1b5");

                    HttpURLConnection connection = (HttpURLConnection) url.openConnection();

                    connection.setRequestMethod("GET");
                    connection.setReadTimeout(5000);
                    connection.setConnectTimeout(5000);

                    //获取
                    int responseCode = connection.getResponseCode();
                    if (responseCode == 200) {
                        InputStream inputStream = connection.getInputStream();

                        String json = streamToString(inputStream, "utf-8");

                        return json;
                    }

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

                return null;
            }

            @Override
            protected void onPostExecute(String s) {
                Gson gson=new Gson();
                DataDataBean dataDataBean = gson.fromJson(s, DataDataBean.class);
                list.addAll(0,dataDataBean.getResult().getData());
                setAdapter();
                //停止刷新
                //System.currentTimeMillis()....当前时间的long类型的值
                Date date=new Date(System.currentTimeMillis());
                //格式化....yyyy-MM-dd HH:mm
                SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH:mm");
                //设置本次刷新的时间
                x_list_view.setRefreshTime(simpleDateFormat.format(date));
            }
        };

     asyncTask.execute();
        x_list_view.stopRefresh();
    }

    @Override
    public void onLoadMore() {


        getDataFromNet(name);
             x_list_view.stopLoadMore();
    }
}

新闻的xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:background="#0ff000"
android:id="@+id/fragment02"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
    <android.support.v4.view.ViewPager
        android:id="@+id/view_pager"
        android:layout_width="match_parent"
        android:layout_height="200dp">
    </android.support.v4.view.ViewPager>
    <ListView
        android:id="@+id/list_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"></ListView>

</LinearLayout>

新闻的activity


package com.example.jinritt.fragment;

import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.annotation.Nullable;
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 android.widget.ListView;

import com.example.jinritt.Adapterere.Listviewadapter;
import com.example.jinritt.Adapterere.ViewAdapter;
import com.example.jinritt.Bbean.bbean;
import com.example.jinritt.R;
import com.google.gson.Gson;

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

/**
 * Created by bawei on 2017/10/17.
 */

public class Xinwen extends Fragment {
 private Listviewadapter   listviewadapter;
    private List<bbean.DataBean>list=new ArrayList<>();
    private ViewPager pager;
    private ListView listview;
    private Handler handler=new Handler(){
        @Override
        public void handleMessage(Message msg) {
            if (msg.what==0){
                pager.setCurrentItem(pager.getCurrentItem()+1);
                handler.sendEmptyMessageDelayed(0,3000);
            }
        }
    };

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.xinwen, container, false);
        pager = (ViewPager) view.findViewById(R.id.view_pager);
        listview = (ListView) view.findViewById(R.id.list_view);
        return view;

    }

    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        AsyncTask<Void, Void, String> asyncTask = new AsyncTask<Void, Void, String>() {
            @Override
            protected String doInBackground(Void... voids) {
                String path = "http://www.yulin520.com/a2a/impressApi/news/mergeList?pageSize=5&page=1";

                try {
                    URL url = new URL(path);

                    HttpURLConnection connection = (HttpURLConnection) url.openConnection();

                    connection.setRequestMethod("GET");
                    connection.setReadTimeout(5000);
                    connection.setConnectTimeout(5000);

                    int responseCode = connection.getResponseCode();
                    if (responseCode == 200){
                        InputStream inputStream = connection.getInputStream();

                        String json = streamToString(inputStream,"utf-8");

                        return json;

                    }

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

                return null;

            }

            @Override
            protected void onPostExecute(String s) {
                Gson gson=new Gson();
                bbean dataBean = gson.fromJson(s, bbean.class);
                  list.addAll(dataBean.getData());

                Listviewadapter  listviewadapter= new Listviewadapter(getActivity(),list);
                  listview.setAdapter(listviewadapter);
                ViewAdapter viewAdapter = new ViewAdapter(getActivity(),list);
                pager.setAdapter(viewAdapter);
                pager.setCurrentItem(list.size()*100000);
                handler.sendEmptyMessageDelayed(0,2000);
            }
        };
        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;
    }
}

     最后是适配器

  

package com.example.jinritt.fragment;

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.jinritt.Appcliton.ImageLoaderUtil;
import com.example.jinritt.R;
import com.nostra13.universalimageloader.core.ImageLoader;

import java.util.List;

/**
 * Created by bawei on 2017/10/17.
 */
public class MyAdapter extends BaseAdapter {

    Context context;
    List<DataDataBean.ResultBean.DataBean> data;
    int IMAGE_LEFT = 0;
    int IMAGE_RIGHT = 1;

    public MyAdapter(Context context, List<DataDataBean.ResultBean.DataBean> data) {
this.data=data;
        this.context=context;
    }

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

    @Override
    public Object getItem(int i) {
        return data.get(i);
    }

    @Override
    public long getItemId(int i) {
        return i;
    }

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


    @Override
    public int getItemViewType(int position) {
        return super.getItemViewType(position);
    }

    @Override
    public View getView(int i, View view, ViewGroup viewGroup) {
        if (getItemViewType(i) == IMAGE_LEFT) {
            ViewHolder holder;
            if (view == null) {
                view = View.inflate(context, R.layout.left_layout, null);
                holder = new ViewHolder();
                holder.image_view = (ImageView) view.findViewById(R.id.image_view);
                holder.text_view = (TextView) view.findViewById(R.id.text_view);
                view.setTag(holder);
            } else {
                holder = (ViewHolder) view.getTag();
            }
            holder.text_view.setText(data.get(i).getTitle());
            ImageLoader.getInstance().displayImage(data.get(i).getThumbnail_pic_s(), holder.image_view, ImageLoaderUtil.getDefaultOption());
        } else if (getItemViewType(i) == IMAGE_RIGHT) {
            ViewHolder holder;
            if (view == null) {
                view = View.inflate(context, R.layout.right_layout, null);
                holder = new ViewHolder();
                holder.image_view = (ImageView) view.findViewById(R.id.image_view);
                holder.text_view = (TextView) view.findViewById(R.id.text_view);
                view.setTag(holder);
            } else {
                holder = (ViewHolder) view.getTag();
            }
            holder.text_view.setText(data.get(i).getTitle());
            ImageLoader.getInstance().displayImage(data.get(i).getThumbnail_pic_s(), holder.image_view, ImageLoaderUtil.getDefaultOption());
        }
        return view;
    }
    class ViewHolder {
        ImageView image_view;
        TextView text_view;
    }
}

                                                 listviewadapter.java

package com.example.jinritt.Adapterere;

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.jinritt.Appcliton.ImageLoaderUtil;
import com.example.jinritt.Bbean.bbean;
import com.example.jinritt.R;
import com.nostra13.universalimageloader.core.ImageLoader;

import java.util.List;

/**
 * Created by bawei on 2017/10/20.
 */

public class Listviewadapter extends BaseAdapter {
    Context context;
    List<bbean.DataBean> list;
    public Listviewadapter(Context context, List<bbean.DataBean> list) {
   this.context=context;
        this.list=list;
    }


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

    @Override
    public Object getItem(int i) {
        return list.get(i);
    }

    @Override
    public long getItemId(int i) {
        return i;
    }

    @Override
    public View getView(int i, View view, ViewGroup viewGroup) {
        Viewholder holder;
        if (view==null){
            view=View.inflate(context, R.layout.listview_layout,null);
            holder=new Viewholder();
            holder.textView= (TextView) view.findViewById(R.id.text_view);
            holder.imageView= (ImageView) view.findViewById(R.id.image_view);
            view.setTag(holder);

        }else {
          holder= (Viewholder) view.getTag();

        }
        holder.textView.setText(list.get(i).getTitle());
        ImageLoader.getInstance().displayImage(list.get(i).getImg(),holder.imageView, ImageLoaderUtil.getDefaultOption());
        return view;
    }
    class Viewholder{
        TextView textView;
        ImageView imageView;
    }
}
                                                  VIewadapter.java


package com.example.jinritt.Adapterere;

import android.content.Context;
import android.support.v4.view.PagerAdapter;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;

import com.example.jinritt.Appcliton.ImageLoaderUtil;
import com.example.jinritt.Bbean.bbean;
import com.nostra13.universalimageloader.core.ImageLoader;

import java.util.List;

/**
 * Created by bawei on 2017/10/20.
 */
public class ViewAdapter extends PagerAdapter {
    Context context;
    List<bbean.DataBean> list;
    public ViewAdapter(Context context, List<bbean.DataBean> list) {
        this.context=context;
        this.list=list;
    }

    @Override
    public int getCount() {
        return Integer.MAX_VALUE;
    }

    @Override
    public boolean isViewFromObject(View view, Object object) {


        return view==object;
    }

    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        ImageView imageView=new ImageView(context);
        imageView.setScaleType(ImageView.ScaleType.FIT_XY);
        ImageLoader.getInstance().displayImage(list.get(position %list.size()).getImg(),imageView, ImageLoaderUtil.getDefaultOption());

        container.addView(imageView);

        return imageView;
    }

    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        container.removeView((View) object);

    }
}

                                 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值