假装是一个成功的布局——3、java逻辑代码

来源:互联网 发布:linux系统数据库备份 编辑:程序博客网 时间:2024/05/20 22:36
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 = "http://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
原创粉丝点击