package com.example.slx.slx1_17; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.FrameLayout; import android.widget.RadioGroup; import com.example.slx.fragment.HangQing; import com.example.slx.fragment.Home; import com.example.slx.fragment.SheZhi; import com.example.slx.fragment.ZiXun; import com.example.slx.utils.NetUtils; public class MainActivity extends AppCompatActivity { private FrameLayout frameLayout; private RadioGroup radioGroup; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); if (NetUtils.isConn(this)) { //找id frameLayout = findViewById(R.id.framelayout); radioGroup = findViewById(R.id.radioGroup); //给radioGroup设置切换监听 radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup radioGroup, int i) { switch (i) { case R.id.but_01: getSupportFragmentManager().beginTransaction().replace(R.id.framelayout, new Home()).commit(); break; case R.id.but_02: getSupportFragmentManager().beginTransaction().replace(R.id.framelayout, new ZiXun()).commit(); break; case R.id.but_03: getSupportFragmentManager().beginTransaction().replace(R.id.framelayout, new HangQing()).commit(); break; case R.id.but_04: getSupportFragmentManager().beginTransaction().replace(R.id.framelayout, new SheZhi()).commit(); break; default: break; } } }); }else { NetUtils.openNetDialog(this); } } }
package com.example.slx.fragment; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import com.example.slx.slx1_17.R; /** * Created by lenovo on 2018/1/17. */ public class HangQing extends Fragment{ @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.layout_hangqing, container, false); return view; } }
package com.example.slx.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 android.widget.ListView; import com.example.slx.slx1_17.R; import com.example.slx.utils.MyTask; import com.google.gson.Gson; import com.handmark.pulltorefresh.library.PullToRefreshScrollView; import java.util.ArrayList; import java.util.List; /** * Created by lenovo on 2018/1/17. */ public class ZiXun extends Fragment{ private TabLayout myTab; private ViewPager viewPager; private List<String> list; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.layout_zixun, container, false); viewPager = view.findViewById(R.id.viewPager); myTab = view.findViewById(R.id.myTab); list = new ArrayList<>(); list.add("数据新闻"); list.add("快讯"); list.add("头条"); list.add("经编公告"); list.add("美股"); list.add("港股"); list.add("基金"); list.add("理财"); viewPager.setAdapter(new FragmentPagerAdapter(getActivity().getSupportFragmentManager()) { @Override public CharSequence getPageTitle(int position) { return list.get(position); } @Override //返回下标所对应的布局 public Fragment getItem(int position) { //接受值contentfragment Contentfragment contentfragment = new Contentfragment(); Bundle bundle = new Bundle(); // 快讯 txs // 头条 toutiao // 精编公告 news/mobile/jbgg // 美股 news/mobile/mgxw // 港股 news/mobile/ggxw // 基金 news/mobile/jjxw // 理财 news/mobile/lcxw String data=""; if (list.get(position).equals("数据新闻")){ data="xbsjxw"; }else if(list.get(position).equals("快讯")){ data="txs"; }else if(list.get(position).equals("头条")){ data="toutiao"; }else if(list.get(position).equals("经编公告")){ data="news/mobile/jbgg"; }else if(list.get(position).equals("美股")){ data="news/mobile/mgxw"; }else if(list.get(position).equals("港股")){ data="news/mobile/ggxw"; }else if(list.get(position).equals("基金")){ data="news/mobile/jjxw"; }else if(list.get(position).equals("理财")){ data="news/mobile/lcxw"; } bundle.putString("data",data); //把值传给contentfragment。 contentfragment.setArguments(bundle); return contentfragment; } @Override public int getCount() { return list.size(); } }); //横向滑动菜单和viewPager相结合 myTab.setupWithViewPager(viewPager); //一次性加载viewPager viewPager.setOffscreenPageLimit(list.size()); return view; } }
package com.example.slx.fragment; import android.os.Bundle; 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.ListView; import android.widget.ScrollView; import com.example.slx.Adapter.MyAdapter; import com.example.slx.pojo.News; import com.example.slx.slx1_17.R; import com.example.slx.utils.MyTask; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; import com.handmark.pulltorefresh.library.PullToRefreshBase; import com.handmark.pulltorefresh.library.PullToRefreshScrollView; import java.lang.reflect.Type; import java.util.ArrayList; import java.util.List; /**rl * Created by lenovo on 2018/1/17. */ public class Contentfragment extends Fragment{ private int pageIndex=1; private int operType=1; List<News.DataBean> newsList=new ArrayList<>(); private ListView listView; private PullToRefreshScrollView ps; private String url1="http://mnews.gw.com.cn/wap/data/news/"; private String url2="/page_1.json"; private String data; private String url; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.contentlayout,container,false); listView = view.findViewById(R.id.listView); ps = view.findViewById(R.id.ps); //取值 Bundle bundle = getArguments(); data = bundle.getString("data"); url = url1+data+url2; requestData(); initPs(); return view; } private void initPs() { ps.setMode(PullToRefreshBase.Mode.BOTH); ps.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ScrollView>() { @Override public void onPullDownToRefresh(PullToRefreshBase<ScrollView> pullToRefreshBase) { operType=1; pageIndex=1; url=url1+data+url2; requestData(); } @Override public void onPullUpToRefresh(PullToRefreshBase<ScrollView> pullToRefreshBase) { operType=2; pageIndex++; url=url1+data+url2; requestData(); } }); } private void requestData() { MyTask myTask = new MyTask(new MyTask.ICallBacks() { private MyAdapter myAdapter; @Override public void getJson(String s) { List<News> list = new ArrayList<>(); Type type = new TypeToken<List<News>>() { }.getType(); Gson gson = new Gson(); list = gson.fromJson(s,type); if(operType==1){ newsList.clear(); } newsList.addAll(list.get(0).getData()); //List<News.DataBean> data = list.get(0).getData(); if (myAdapter==null){ myAdapter = new MyAdapter(getActivity(),newsList); listView.setAdapter(myAdapter); }else { myAdapter.notifyDataSetChanged(); } ps.onRefreshComplete(); } }); myTask.execute(url); } }
package com.example.slx.Adapter; import android.content.Context; import android.graphics.Bitmap; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; import com.example.slx.pojo.News; import com.example.slx.slx1_17.R; import com.nostra13.universalimageloader.core.DisplayImageOptions; import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.assist.ImageScaleType; import java.util.List; /** * Created by lenovo on 2018/1/17. */ public class MyAdapter extends BaseAdapter{ private Context context; private List<News.DataBean> list; private DisplayImageOptions options; public MyAdapter(Context context, List<News.DataBean> list) { this.context = context; this.list = list; options = new DisplayImageOptions.Builder() .cacheInMemory(true)//使用内存缓存 .cacheOnDisk(true)//使用磁盘缓存 .showImageOnLoading(R.mipmap.ic_launcher)//设置正在下载的图片 .showImageForEmptyUri(R.mipmap.ic_launcher)//url为空或请求的资源不存在时 .showImageOnFail(R.mipmap.ic_launcher)//下载失败时显示的图片 .bitmapConfig(Bitmap.Config.RGB_565)//设置图片色彩模式 .imageScaleType(ImageScaleType.EXACTLY)//设置图片的缩放模式 .build(); } @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.item,null); holder=new ViewHolder(); holder.textView=view.findViewById(R.id.textView); holder.imageView=view.findViewById(R.id.imageView); view.setTag(holder); }else { holder=(ViewHolder)view.getTag(); } holder.textView.setText(list.get(i).getTitle()); ImageLoader.getInstance().displayImage(list.get(i).getImg(),holder.imageView,options); return view; } public class ViewHolder{ TextView textView; ImageView imageView; } }