//首页横向菜单+ViewPager
import android.support.design.widget.TabLayout; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.view.ViewPager; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import com.bwie.com.basefengzhang.fragment.Fragment01; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity { private TabLayout tl; private ViewPager main_vp; private List<String> lists; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tl = findViewById(R.id.tl); main_vp = findViewById(R.id.main_vp); initData(); main_vp.setAdapter(new MyMainAdapter(getSupportFragmentManager())); tl.setupWithViewPager(main_vp); } private void initData() { lists = new ArrayList<>(); lists.add("首页"); lists.add("新闻"); lists.add("国际"); lists.add("国内"); lists.add("科技"); lists.add("娱乐"); lists.add("趣图"); } class MyMainAdapter extends FragmentPagerAdapter { public MyMainAdapter(FragmentManager fm) { super(fm); } @Override public CharSequence getPageTitle(int position) { return lists.get(position); } @Override public Fragment getItem(int position) { Fragment01 fragment01=new Fragment01(); return fragment01; } @Override public int getCount() { return lists.size(); } } }
//首页的Fragment
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.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ListView; import android.widget.ScrollView; import com.bwie.com.basefengzhang.R; import com.bwie.com.basefengzhang.adapter.MyAdapter; import com.bwie.com.basefengzhang.adapter.MyLvAdapter; import com.bwie.com.basefengzhang.bean.ResultData; import com.bwie.com.basefengzhang.bean.ResultData01; import com.bwie.com.basefengzhang.utiles.MyTask; import com.bwie.com.basefengzhang.utiles.NetStateUtil; import com.google.gson.Gson; import com.handmark.pulltorefresh.library.PullToRefreshBase; import com.handmark.pulltorefresh.library.PullToRefreshScrollView; import java.util.ArrayList; import java.util.List; /** * Created by Administrator on 2018/1/12. */ public class Fragment01 extends Fragment { private Handler handler=new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); int position=vp.getCurrentItem(); position++; vp.setCurrentItem(position); sendEmptyMessageDelayed(0,1000); } }; private ListView lv; private ViewPager vp; int pageIndex=1; int oprType=0; private ArrayList<String> picUrls; private String url01="http://api.tianapi.com/mobile/?key=c38dde315c92ae9414672fea3690fd4e&num="+pageIndex; private MyLvAdapter myLvAdapter; private List<ResultData.NewslistBean> data = new ArrayList<>(); private PullToRefreshScrollView ptrsv; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment01, container, false); vp = view.findViewById(R.id.vp); lv=view.findViewById(R.id.lv); ptrsv = view.findViewById(R.id.ptrsv); //判断网络状态 if (NetStateUtil.isConn(getActivity())){ initLunbotu(); initpsv(); requestNetData(); }else{ NetStateUtil.showNoNetWorkDlg(getActivity()); } return view; } //判断适配是否为空 public void setLvAdapter(){ if (myLvAdapter==null){ myLvAdapter = new MyLvAdapter(data,getActivity()); lv.setAdapter(myLvAdapter); }else{ myLvAdapter.notifyDataSetChanged(); } } private void requestNetData(){ MyTask myTask=new MyTask(new MyTask.ICallBacks() { @Override public void getJson(String json) { Gson gson=new Gson(); ResultData data01 = gson.fromJson(json, ResultData.class); //图片数据源 if (oprType==1){ data.clear(); } //列表数据 data.addAll(data01.getNewslist()); Log.d("--", "getJson: "+data.size()); //设置列表适配器 setLvAdapter(); ptrsv.onRefreshComplete(); } }); myTask.execute(url01); } private void initLunbotu(){ picUrls= new ArrayList<String>(); //图片路径 picUrls.add("http://i04.pic.sogou.com/eb25215666d3f19b"); picUrls.add("http://i04.pic.sogou.com/98d72d6b17e8ac75"); picUrls.add("http://i04.pic.sogou.com/0b8e0d58ff5a2f5d"); picUrls.add("http://i04.pic.sogou.com/c8f90f93ee078e26"); picUrls.add("http://i04.pic.sogou.com/ac4c1cb4c7f90bbb"); picUrls.add("http://i04.pic.sogou.com/2d780fc803961176"); picUrls.add("http://i04.pic.sogou.com/f0572d832f43dd3a"); picUrls.add("http://i04.pic.sogou.com/5c8dbe429d411297"); //设置轮播适配器 vp.setAdapter(new MyAdapter(picUrls,getActivity())); vp.setCurrentItem(5*1000); handler.sendEmptyMessageDelayed(0,1000); } private void initpsv(){ ptrsv.setMode(PullToRefreshBase.Mode.BOTH); ptrsv.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ScrollView>() { @Override public void onPullDownToRefresh(PullToRefreshBase<ScrollView> pullToRefreshBase) { pageIndex=1; url01="http://api.tianapi.com/mobile/?key=c38dde315c92ae9414672fea3690fd4e&num="+pageIndex; oprType=1; requestNetData(); } @Override public void onPullUpToRefresh(PullToRefreshBase<ScrollView> pullToRefreshBase) { pageIndex++; url01="http://api.tianapi.com/mobile/?key=c38dde315c92ae9414672fea3690fd4e&num="+pageIndex; oprType=2; requestNetData(); } }); } }//重新设置listView的高,结局冲突问题import android.content.Context; import android.util.AttributeSet; import android.widget.ListView; /** * Created by Administrator on 2018/1/12. */ public class MyListView extends ListView { public MyListView(Context context) { super(context); } public MyListView(Context context, AttributeSet attrs) { super(context, attrs); } public MyListView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int newHeight=MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE>>2,MeasureSpec.AT_MOST); super.onMeasure(widthMeasureSpec,newHeight); } }//图片的适配器import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; import android.support.v4.view.PagerAdapter; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import com.bwie.com.basefengzhang.Main2Activity; import com.nostra13.universalimageloader.core.DisplayImageOptions; import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.assist.ImageScaleType; import java.util.ArrayList; /** * Created by Administrator on 2018/1/11. */ public class MyAdapter extends PagerAdapter { private ArrayList<String> picUrls; private Context context; private DisplayImageOptions options; public MyAdapter(ArrayList<String> picUrls, Context context) { this.context=context; this.picUrls=picUrls; options=new DisplayImageOptions.Builder() .cacheInMemory(true)//使用内存缓存 .cacheOnDisk(false)//使用磁盘缓存 .bitmapConfig(Bitmap.Config.RGB_565)//设置图片色彩模式 .imageScaleType(ImageScaleType.EXACTLY)//设置图片的缩放模式 .build(); } @Override public int getCount() { return Integer.MAX_VALUE; } @Override public boolean isViewFromObject(View view, Object object) { return view==object; } @Override public Object instantiateItem(final ViewGroup container, int position) { ImageView imageView=new ImageView(context); //得到图片的url路径 String s = picUrls.get(position % picUrls.size()); //异步加载图片 ImageLoader.getInstance().displayImage(s,imageView,options); //添加到容器中 container.addView(imageView); imageView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent=new Intent(context, Main2Activity.class); context.startActivity(intent); } }); return imageView; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); } }//集合的适配器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.bwie.com.basefengzhang.R; import com.bwie.com.basefengzhang.bean.ResultData; 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 Administrator on 2018/1/11. */ public class MyLvAdapter extends BaseAdapter { private List<ResultData.NewslistBean> data; private Context context; private final DisplayImageOptions options; public MyLvAdapter(List<ResultData.NewslistBean> data, Context context) { this.context=context; this.data=data; options = new DisplayImageOptions.Builder() .cacheInMemory(true) .cacheOnDisk(true) .bitmapConfig(Bitmap.Config.RGB_565) .imageScaleType(ImageScaleType.EXACTLY) .build(); } @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 View getView(int i, View view, ViewGroup viewGroup) { ViewHolder holder; if (view==null){ holder=new ViewHolder(); view=View.inflate(context,R.layout.list_item,null); holder.images=view.findViewById(R.id.img); holder.title=view.findViewById(R.id.name); holder.price=view.findViewById(R.id.plice); view.setTag(holder); }else{ holder= (ViewHolder) view.getTag(); } holder.title.setText(data.get(i).getTitle()); holder.price.setText(data.get(i).getCtime()); ImageLoader.getInstance().displayImage(data.get(i).getPicUrl(),holder.images,options); return view; } class ViewHolder{ ImageView images; TextView title,price; } }//设置WebViewimport android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.WebViewClient; public class Main2Activity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); WebView webView=findViewById(R.id.wv); //设置支持JS WebSettings settings = webView.getSettings(); settings.setJavaScriptEnabled(true); settings.setJavaScriptCanOpenWindowsAutomatically(true); //设置在本应用中显示网页 webView.setWebViewClient(new WebViewClient()); webView.loadUrl("http://baidu.com"); } }//常用方法略