假装是一个成功的布局——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
- 假装是一个成功的布局——3、java逻辑代码
- 假装是一个成功的布局——2、布局
- 假装是一个成功的布局——1、配置
- 假装是一个成功的布局——4、Util类+Bean类+MyApp类
- 怎么用java代码写一个线性布局;布局里面有两个按钮是水平的
- 从假装在腾讯,到真的360 —— 一个应届准PM的独白(面经干货)
- 从假装在腾讯,到真的360 —— 一个应届准PM的独白(面经干货)
- 程序员如何成功的假装在很努力的工作
- 程序员如何成功的假装在很努力的工作
- 为何你应该假装自己是一个电脑白痴
- 如何快速成为经济学家——《假装的艺术 》
- 更换头像的逻辑代码,两个功能,一个是从图库选择,一个是打开相机自己拍照
- 《一个Android工程的从零开始》-3、base(二) BaseActivity布局相关代码——空布局控件的运用
- 成功的条件,不只是一个
- 成功是一个谜
- 程序员如何成功的假装在很努力的工作[转载]
- [程序猿感悟] 程序员如何成功的假装在很努力的工作?
- 程序员如何成功的假装在很努力的工作【转载】
- oracle拆分逗号分隔字符串 实现split
- 高性能网站建设指南总结
- Linux mysqldump crontab 备份数据失败
- 将Node.js项目docker容器化并纳入kubernetes调度编排的实践
- Webpack modules.rules所包含的数组的Rule具有的一些参数
- 假装是一个成功的布局——3、java逻辑代码
- 容器删除元素erase,迭代器失效的问题
- python enumerate函数
- Android之SoundPool详细讲解
- maven resources的理解
- VIM基本操作
- 随机验证码生成和获取——基于python tkinter、pytesseract实现
- Tomcat
- Eclipse unhandled event loop exception no more handles