Fragment 實現 輪播實現
阿新 • • 發佈:2019-02-19
package com.zhoukao1.activity; import android.os.Bundle; import android.support.annotation.IdRes; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.support.v4.view.ViewPager; import android.support.v7.app.AppCompatActivity; import android.widget.RadioGroup; import com.zhoukao1.R; import com.zhoukao1.adapter.MyFragmentAdapter; import com.zhoukao1.fragment.Fragment1; import com.zhoukao1.fragment.Fragment2; import com.zhoukao1.fragment.Fragment3; import java.util.ArrayList; import java.util.List; import butterknife.Bind; import butterknife.ButterKnife; public class MainActivity extends FragmentActivity { @Bind(R.id.view_pager) ViewPager viewPager; @Bind(R.id.radio_group) RadioGroup radioGroup; private ArrayList<Fragment> list; private Fragment1 fragment1; private Fragment2 fragment2; private Fragment3 fragment3; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.bind(this); //建立集合 list = new ArrayList<Fragment>(); //建立fragment fragment1 = new Fragment1(); fragment2 = new Fragment2(); fragment3 = new Fragment3(); //把fragment加入集合 list.add(fragment1); list.add(fragment2); list.add(fragment3); //建立介面卡 MyFragmentAdapter adapter=new MyFragmentAdapter(getSupportFragmentManager(),list); //新增到視訊日期 viewPager.setAdapter(adapter); //點選radiogroup進行監聽 radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, @IdRes int checkedId) { switch (checkedId){ case R.id.rb1: viewPager.setCurrentItem(0); break; case R.id.rb2: viewPager.setCurrentItem(1); break; case R.id.rb3: viewPager.setCurrentItem(2); break; } } }); //viewpager監聽 viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { radioGroup.check(radioGroup.getChildAt(position).getId()); } @Override public void onPageScrollStateChanged(int state) { } }); } } package com.zhoukao1.adapter; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import android.view.View; import java.util.List; /** * Created by 我 on 2018/7/7. */ public class MyFragmentAdapter extends FragmentPagerAdapter{ private List<Fragment> list; public MyFragmentAdapter(FragmentManager fm, List<Fragment> list) { super(fm); this.list = list; } @Override public Fragment getItem(int position) { return list.get(position); } @Override public int getCount() { return list.size(); } } package com.zhoukao1.fragment; import android.content.Context; import android.content.DialogInterface; 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.support.v7.app.AlertDialog; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.ListView; import android.widget.Toast; import com.google.gson.Gson; import com.zhoukao1.R; import com.zhoukao1.adapter.MyAdapter; import com.zhoukao1.adapter.MyPagerAdapter; import com.zhoukao1.bean.Student; import java.io.ByteArrayOutputStream; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; import java.util.ArrayList; import java.util.List; /** * A simple {@link Fragment} subclass. */ public class Fragment1 extends Fragment { private ListView list_view; private ViewPager view_pagera; Handler handler=new Handler(){ private List<Student.DataBean> data; @Override public void handleMessage(Message msg) { super.handleMessage(msg); if (msg.what==0){ int i = view_pagera.getCurrentItem(); i++; view_pagera.setCurrentItem(i); handler.sendEmptyMessageDelayed(0,1000); }else { if (msg.what == 1) { String json = (String) msg.obj; Gson gson = new Gson(); Student student = gson.fromJson(json, Student.class); data = student.getData(); Log.i("aaa", data.toString()); //建立介面卡 MyAdapter adapter = new MyAdapter(getActivity(), data); list_view.setAdapter(adapter); list_view.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { @Override public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { //createDialog(position); AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); builder.setTitle("內容"); builder.setMessage(data.get(position).getContent()+data.get(position).getCreateTime()+data.get(position).getPhone()); builder.setNegativeButton("暫不更新",null); builder.setPositiveButton("立即更新", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(getActivity(), "沒有版權", Toast.LENGTH_SHORT).show(); } }); builder.show(); return false; } }); } } } }; public Fragment1() { // Required empty public constructor } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment View view = inflater.inflate(R.layout.fragment1, container, false); list_view = (ListView) view.findViewById(R.id.list_view); view_pagera = (ViewPager) view.findViewById(R.id.view_pagera); return view; } //邏輯程式碼 @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); //建立集合 ArrayList<Integer> list = new ArrayList<>(); list.add(R.drawable.p2); list.add(R.drawable.p3); list.add(R.drawable.p4); //建立介面卡 MyPagerAdapter adapter=new MyPagerAdapter(list, getActivity()); view_pagera.setAdapter(adapter); view_pagera.setCurrentItem(list.size()*1000); handler.sendEmptyMessageDelayed(0,0); //解析 gettoJsonData(); } public void gettoJsonData() { new Thread(){ @Override public void run() { super.run(); String path="http://www.yulin520.com/a2a/forum/allTypeList?sign=376C5BFC22179A1B8FF3A86D4588B29F&pageSize=10&ts=1877785007&forumType=0&page=1"; try { URL url=new URL(path); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setConnectTimeout(5000); connection.setReadTimeout(5000); connection.setRequestMethod("GET"); if (connection.getResponseCode()==200){ InputStream inputStream = connection.getInputStream(); ByteArrayOutputStream bos=new ByteArrayOutputStream(); byte[] buffer=new byte[1024]; int len=0; while ((len=inputStream.read(buffer))!=-1){ bos.write(buffer,0,len); } inputStream.close(); bos.close(); String json = bos.toString(); Message message = Message.obtain(); message.what=1; message.obj=json; handler.sendMessage(message); } } catch (Exception e) { e.printStackTrace(); } } }.start(); } private void createDialog(int position) { } } package com.zhoukao1.adapter; import android.content.Context; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager; import android.support.v4.view.PagerAdapter; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import java.util.List; /** * Created by 我 on 2018/7/7. */ public class MyPagerAdapter extends PagerAdapter{ private List<Integer> list; private Context context; public MyPagerAdapter(List<Integer> list, FragmentActivity context) { this.list = list; this.context = context; } @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.setImageResource(list.get(position%list.size())); imageView.setScaleType(ImageView.ScaleType.FIT_XY); container.addView(imageView); return imageView; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View)object); } }