public class FragmentNews extends Fragment {
private ViewPager vp;
private ListView lv;
private RadioGroup rg;
private RadioButton rb_news;
private RadioButton rb_me;
private VpBean vb;
private List<ImageView> viewList;
private MyPagerAdapter adapter;
int index = 0;
List<RadioButton> rbs = new ArrayList<RadioButton>();
Handler handler = new Handler();
private LvBean lb;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = View.inflate(getActivity(), R.layout.frag_news,null);
vp = view.findViewById(R.id.ya_news_vp);
lv = view.findViewById(R.id.ya_news_lv);
rg = view.findViewById(R.id.ya_news_rg);
rb_news = view.findViewById(R.id.ya_rg_news);
rb_me = view.findViewById(R.id.ya_rg_me);
RadioButton rb1 = view.findViewById(R.id.news_rb1);
RadioButton rb2 = view.findViewById(R.id.news_rb2);
RadioButton rb3 = view.findViewById(R.id.news_rb3);
RadioButton rb4 = view.findViewById(R.id.news_rb4);
rb1.setChecked(true);
rbs.add(rb1);
rbs.add(rb2);
rbs.add(rb3);
rbs.add(rb4);
initData();
vp.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
checkRb(index);
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
return view;
}
private void checkRb(int index) {
for (int i = 0; i <rbs.size() ; i++) {
if(i == index){
rbs.get(i).setChecked(true);
}else{
rbs.get(i).setChecked(false);
}
}
}
private void initData() {
new AsyncTask<String,Integer,String>(){
@Override
protected void onPostExecute(String s) {
initVp();
//adapter.notifyDataSetChanged();
initLv();
super.onPostExecute(s);
}
@Override
protected String doInBackground(String... strings) {
getVpData();
getLvData();
return null;
}
}.execute();
}
private void initLv() {
MyAdapter adapter = new MyAdapter();
lv.setAdapter(adapter);
}
private void getLvData() {
try {
URL url = new URL("http://result.eolinker.com/iYXEPGn4e9c6dafce6e5cdd23287d2bb136ee7e9194d3e9?uri=one");
// HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
int code = conn.getResponseCode();
if(code == 200){
Gson gson = new Gson();
lb = gson.fromJson(new InputStreamReader(conn.getInputStream(),"UTF-8"),LvBean.class);
}
} catch (Exception e) {
e.printStackTrace();
}
}
private void initVp() {
viewList = new ArrayList<ImageView>();
if(vb != null){
for (int i = 0; i <vb.getBanner().size() ; i++) {
ImageView iv = new ImageView(getActivity());
iv.setScaleType(ImageView.ScaleType.FIT_XY);
ImageLoader.getInstance().displayImage(vb.getBanner().get(i).getImage_url(),iv);
viewList.add(iv);
}
}
adapter = new MyPagerAdapter();
vp.setAdapter(adapter);
handler.postDelayed(new Runnable() {
@Override
public void run() {
index = vp.getCurrentItem();
index ++;
vp.setCurrentItem(index);
handler.postDelayed(this,2000);
}
},2000);
}
private void getVpData() {
try {
URL url = new URL("http://result.eolinker.com/iYXEPGn4e9c6dafce6e5cdd23287d2bb136ee7e9194d3e9?uri=banner");
// HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
int code = conn.getResponseCode();
if(code == 200){
Gson gson = new Gson();
vb = gson.fromJson(new InputStreamReader(conn.getInputStream(),"UTF-8"),VpBean.class);
}
} catch (Exception e) {
e.printStackTrace();
}
}
class MyPagerAdapter extends PagerAdapter{
@Override
public int getCount() {
if(vb != null){
return Integer.MAX_VALUE;
}
return 0;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
index = position % vb.getBanner().size();
container.addView(viewList.get(index));
return viewList.get(index);
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
}
class MyAdapter extends BaseAdapter{
@Override
public int getCount() {
if(lb.getData() != null){
return lb.getData().size();
}
return 0;
}
@Override
public Object getItem(int i) {
return null;
}
@Override
public long getItemId(int i) {
return 0;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
ViewHolder holder;
if(view == null){
holder = new ViewHolder();
view = View.inflate(getActivity(),R.layout.lv_item,null);
holder.news_lv_title = view.findViewById(R.id.news_lv_title);
holder.news_lv_content = view.findViewById(R.id.news_lv_content);
holder.news_lv_pic = view.findViewById(R.id.news_lv_pic);
view.setTag(holder);
}else{
holder = (ViewHolder) view.getTag();
}
holder.news_lv_title.setText(lb.getData().get(i).getTitle());
holder.news_lv_content.setText(lb.getData().get(i).getContent());
ImageLoader.getInstance().displayImage(lb.getData().get(i).getImage_url(),holder.news_lv_pic);
return view;
}
}
class ViewHolder{
TextView news_lv_title,news_lv_content;
ImageView news_lv_pic;
}
}
RadioButton实现小圆点轮播_
最新推荐文章于 2018-12-10 08:39:36 发布
这个博客展示了如何在Fragment中利用RadioButton和ViewPager创建一个小圆点指示器的轮播效果。通过初始化RadioButton和ViewPager,设置适配器,并监听页面滑动事件,实现了小圆点选中状态的切换。同时,从网络获取数据并展示在ListView中。
1872

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



