1. 程式人生 > >輪播Tableyout與ViewPager

輪播Tableyout與ViewPager

在這裡插入圖片描述在這裡插入程式碼片

主要頁面顯示

package com.example.day9_23.fragment;

import android.content.Intent; import android.os.AsyncTask; import android.os.Bundle; import android.os.Handler; 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.AdapterView;

import com.bwie.xlistview.XListView; import com.example.day9_23.Activity.HomeActivity; import com.example.day9_23.R; import com.example.day9_23.Utils.HttpUtils; import com.example.day9_23.adapter.NewsAdapter; import com.example.day9_23.bean.News; import com.google.gson.Gson;

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

/**

  • Created by 遷就 on 2018/9/23. */

public class NewsFragment extends Fragment { public static final String urls=“http://www.xieast.com/api/news/news.php?page=”; public static final String TAG=“NewsFragment”; private int page=1; private boolean isLoadMore=false;

Handler handler = new Handler();
private XListView xlvNews;
private List<News.DataBean> list;
private NewsAdapter adapter;
private String url;

@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Bundle bundle = getArguments();
    url = bundle.getString("url");
}

@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.item_news, container, false);
    xlvNews = v.findViewById(R.id.xlv_news);
    return v;
}

@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    list = new ArrayList<>();
    adapter = new NewsAdapter(getActivity(),list);
    xlvNews.setAdapter(adapter);

    xlvNews.setPullLoadEnable(true);
    xlvNews.setPullRefreshEnable(true);

    getData(1,false);

    xlvNews.setXListViewListener(new XListView.IXListViewListener() {
        @Override
        public void onRefresh() {
            page=1;
            getData(page,false);
        }

        @Override
        public void onLoadMore() {
            page++;
            getData(page,true);
        }
    });
    xlvNews.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            String url=list.get((int) id).getUrl();
            Intent intent = new Intent(getActivity(), HomeActivity.class);
           intent.putExtra("url",url);
            startActivity(intent);
        }
    });
}

private void getData(int page, final boolean isLoadMore) {
    new AsyncTask<String,Integer,String>(){
        @Override
        protected String doInBackground(String... strings) {
            return HttpUtils.getStringFromHttp(strings[0]);
        }

        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);
            Gson gson = new Gson();
            News news = gson.fromJson(s, News.class);
            if (news!=null){
                List<News.DataBean> data = news.getData();
                if (data!=null){
                    if (!isLoadMore){
                        list.clear();
                    }
                    list.addAll(data);
                    adapter.notifyDataSetChanged();
                }
            }
            handler.postDelayed(new Runnable() {
                @Override
                public void run() {
                    if (isLoadMore){
                        xlvNews.stopLoadMore();
                    }else {
                        xlvNews.stopRefresh();
                        xlvNews.setRefreshTime("剛剛");
                    }
                }
            },2000);
        }
    }.execute(urls);
}

}

佈局檔案1

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

<android.support.design.widget.TabLayout android:id="@+id/tbl_news" android:layout_width=“match_parent” android:layout_height=“wrap_content”> </android.support.design.widget.TabLayout> <android.support.v4.view.ViewPager android:id="@+id/vp_news" android:layout_width=“match_parent” android:layout_height=“wrap_content”></android.support.v4.view.ViewPager>

Xlistview佈局

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

<android.support.design.widget.TabLayout android:id="@+id/tbl_news" android:layout_width=“match_parent” android:layout_height=“wrap_content”> </android.support.design.widget.TabLayout> <android.support.v4.view.ViewPager android:id="@+id/vp_news" android:layout_width=“match_parent” android:layout_height=“wrap_content”></android.support.v4.view.ViewPager>