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> 首页的activitypackage 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 activitypackage 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); } }
6181

被折叠的 条评论
为什么被折叠?



