輪播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>