11.10——基础布局 + xlv

MainActivity:
package com.bwei.my1108;
import android.os.Bundle;
import android.support.annotation.IdRes;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.AppCompatActivity;
import android.widget.ImageView;
import android.widget.RadioGroup;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {
    //定义变量
    private List<Fragment> fragmentList = new ArrayList<Fragment>();
    private RadioGroup rg;
    private FragmentManager supportFragmentManager;
    String TAG = "wzq";
    private DrawerLayout drawerLayout;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //初始化组件
        rg = (RadioGroup) findViewById(R.id.rg);
        initFragment();
        supportFragmentManager = getSupportFragmentManager();
        supportFragmentManager.beginTransaction().add(R.id.fl, fragmentList.get(0)).commit();
        rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup radioGroup, @IdRes int i) {
                switch (i) {
                    case R.id.rb1:
                        supportFragmentManager.beginTransaction().replace(R.id.fl,fragmentList.get(0)).commit();
                        break;
                    case R.id.rb2:
                        supportFragmentManager.beginTransaction().replace(R.id.fl,fragmentList.get(1)).commit();
                        break;
                    case R.id.rb3:
                        supportFragmentManager.beginTransaction().replace(R.id.fl,fragmentList.get(2)).commit();
                        break;
                    case R.id.rb4:
                        supportFragmentManager.beginTransaction().replace(R.id.fl,fragmentList.get(3)).commit();
                        break;

                }
            }
        });
        drawerLayout = (DrawerLayout) findViewById(R.id.drawer);
        ImageView img = (ImageView) findViewById(R.id.img);

        //  getActivity(). getSupportFragmentManager().beginTransaction().replace(R.id.f1,mFragment).commit();
        //关闭drawer
        drawerLayout.closeDrawer(img);
    }

    private void initFragment() {
        F1 F1 = new F1();
        F2 f2 = new F2();
        F3 f3 = new F3();
         F4 f4 =  new F4();

        fragmentList.add(F1);
        fragmentList.add(f2);
        fragmentList.add(f3);
        fragmentList.add(f4);
    }
}

F1:

package com.bwei.my1108;

import android.os.Bundle;
import android.support.annotation.Nullable;
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.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import java.util.ArrayList;

/**
 * author:Created by WangZhiQiang on 2017/11/9.
 */

public class F1 extends Fragment{

    private ViewPager viewpager;
    private ArrayList<Fragment> fragmentList = new ArrayList<Fragment>();

  /*  private FrameLayout frameLayout;
    private ListView lv;*/
    private ArrayList<String> lists;



    //只写加载布局和找到控件
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.f1, container, false);
        viewpager = view.findViewById(R.id.vp);
        return view;
    }
    /**
     * 写fragment的逻辑;
     * @param view
     * @param savedInstanceState
     */
    @Override
    public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        initFragment();
        //fragment中嵌套子fragment要用getChildFragmentManager()
        //fragment中嵌套子fragment要用getChildFragmentManager()
        //fragment中嵌套子fragment要用getChildFragmentManager()
        viewpager.setAdapter(new MPagerAdapter(getChildFragmentManager()));
    }
    private void initFragment() {
        F01 f01 = new F01();
        F02 f02 = new F02();
        fragmentList.add(f01);
        fragmentList.add(f02);

    }
    private class MPagerAdapter extends FragmentPagerAdapter {
        public MPagerAdapter(FragmentManager fm) {
            super(fm);
        }
        @Override
        public Fragment getItem(int position) {
            return fragmentList.get(position);
        }
        @Override
        public int getCount() {
            return fragmentList.size();
        }
    }
}

F2:
package com.bwei.my1108;

import android.os.Bundle;
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;

/**
 * author:Created by WangZhiQiang on 2017/11/8.
 */

public class F02 extends Fragment {
    private ViewPager viewPager;
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.f02,container,false);
        viewPager = view.findViewById(R.id.vp);
        return view;
    }
    @Override
    public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
    }
}

F01:
package com.bwei.my1108;

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.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

import com.bwie.xlistviewlibrary.View.XListView;
import com.google.gson.Gson;
import com.nostra13.universalimageloader.core.ImageLoader;

import java.util.ArrayList;
import java.util.List;

/**
 * author:Created by WangZhiQiang on 2017/11/8.
 */

public class F01 extends Fragment implements  XListView.IXListViewListener{


    public String urlString = "http://api.expoon.com/AppNews/getNewsList/type/1/p/1";
    String urlBitmap = "https://img-my.csdn.net/uploads/201407/26/1406383265_8550.jpg";

    private XListView xlv;
    ArrayList<JavaBean.DataBean> dataBeanList = new ArrayList();

    private MAdapter adapter;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.f01, container, false);
        /** 下拉刷新,上拉加载 */

        xlv = (XListView) view.findViewById(R.id.xlv);// 这个listview是在这个layout里面
         return view;
    }

    @Override
    public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        xlv.setPullLoadEnable(true);// 设置让它上拉,FALSE为不让上拉,便不加载更多数据
        xlv.setXListViewListener(this);
        //直接调用asyncTask类请求网络,把url传进去
        //这行代码要在主线程调用;
        initdata();
        adapter = new MAdapter();
        xlv.setAdapter(adapter);
    }

    private void initdata() {
        new MAsyncTask().execute(urlString);
    }

    /**
     * 泛型  第一个参数:传过来的url
     * 第二个参数 :进度
     * 第三个参数 :接口请求成功返回的东西(json,bitmap)
     */
    private class MAsyncTask extends AsyncTask<String, Void, String> {
        /**
         * 这个方法在子线程,在这个方法里进行联网操作
         *
         * @param strings 可变参数,底层是数组,里面放的是传过来的参数;
         * @return
         */
        @Override
        protected String doInBackground(String... strings) {
            String urlTemp = strings[0];
            //直接用工具类获取json
            String netJson = NetUtil.getNetJson(urlTemp);
            return netJson; //返回给(前台方法,主线程方法onPostExecute)
        }

        /**
         * 这个方法在主线程, 直接更新ui即可;
         *
         * @param s s是doInBackground请求接口成功后返回的json
         */
        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);
            Log.e("wzq", "onPostExecute: " + s);
            //解析s,  直接给控件展示;
            Gson gson = new Gson();
            JavaBean bean = gson.fromJson(s,JavaBean.class);
            List<JavaBean.DataBean>  temp = (List<JavaBean.DataBean>) bean.getData();

            dataBeanList.addAll(temp);
            adapter.notifyDataSetChanged();
        }
    }


    private class MAdapter extends BaseAdapter {

        @Override
        public int getCount() {
            Log.e("wzq", "getCount:" + dataBeanList.size());
            return dataBeanList.size();
        }

        @Override
        public Object getItem(int i) {
            return dataBeanList.get(i);
        }

        @Override
        public long getItemId(int i) {
            return i;
        }

        @Override
        public View getView(int i, View view, ViewGroup viewGroup) {
            View view1 = View.inflate(getActivity(), R.layout.xlv_item, null);
            TextView tv = view1.findViewById(R.id.tv);
            ImageView img  = view1.findViewById(R.id.img);
            tv.setText(dataBeanList.get(i).getNews_title());
//            iv.setImageBitmap("url");

//调用显示图片
           ImageLoader instance = ImageLoader.getInstance();
            instance.displayImage(urlBitmap,img);

            return view1;
        }
    }





    // 关闭
    public void onLoad() {
        xlv.stopRefresh();
        xlv.stopLoadMore();
        xlv.setRefreshTime("刚刚");
    }

    //刷新
    @Override
    public void onRefresh() {
        dataBeanList.clear();
        initdata();
        onLoad();
    }

    //加载更多
    @Override
    public void onLoadMore() {
        //1--保留之前集合中的数据
        //2 把新数据添加到list中,更新适配器;
        initdata();
        onLoad();

    }


    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
            getActivity().finish();
        }
        return false;
    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值