侧拉——我的相册——基础布局逻辑
来源:互联网 发布:黑莓 转制软件 编辑:程序博客网 时间:2024/05/16 09:06
MainActivity:
public class MainActivity extends AppCompatActivity { //RadioButton+Fragment实现页面主布局 private FrameLayout fl; private LinearLayout line; List<Fragment> fal = new ArrayList<>(); private android.support.v4.app.FragmentManager manager; List<String> sal = new ArrayList<>(); String datas [] = {"QQ钱包","个性装扮","我的相册"}; private DrawerLayout drawer; private ListView drawer_lv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); fl = findViewById(R.id.fl); drawer = findViewById(R.id.drawer); drawer_lv = findViewById(R.id.drawer_lv); for (int i = 0; i<3; i++){ sal.add(datas[i]); } drawer_lv.setAdapter(new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1, sal)); drawer_lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { switch (i){ case 0: Toast.makeText(MainActivity.this,"您点击了"+sal.get(i)+"条目",Toast.LENGTH_SHORT).show(); break; case 1: Toast.makeText(MainActivity.this,"您点击了"+sal.get(i)+"条目",Toast.LENGTH_SHORT).show(); break; case 2: manager.beginTransaction().replace(R.id.fl,new Pictures()).commit(); break; } } }); RadioGroup rg = findViewById(R.id.rg); initFragment(); manager = getSupportFragmentManager(); this.manager.beginTransaction().add(R.id.fl, fal.get(0)).commit(); rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup radioGroup, @IdRes int i) { switch (i) { case R.id.rb1: MainActivity.this.manager.beginTransaction().replace(R.id.fl,fal.get(0)).commit(); break; case R.id.rb2: MainActivity.this.manager.beginTransaction().replace(R.id.fl,fal.get(1)).commit(); break; case R.id.rb3: MainActivity.this.manager.beginTransaction().replace(R.id.fl,fal.get(2)).commit(); break; case R.id.rb4: MainActivity.this.manager.beginTransaction().replace(R.id.fl,fal.get(3)).commit(); break; } } }); line = (LinearLayout) findViewById(R.id.line); drawer = (DrawerLayout) findViewById(R.id.drawer); ImageView img = (ImageView) findViewById(R.id.img); // getActivity(). getSupportFragmentManager().beginTransaction().replace(R.id.f1,mFragment).commit(); //关闭drawer drawer.closeDrawer(line); } private void initFragment() { F1 f1 = new F1(); F2 f2 = new F2(); F2 f3 = new F2(); F2 f4 = new F2(); fal.add(f1); fal.add(f2); fal.add(f3); fal.add(f4); }}
F1:
public class F1 extends Fragment{ //首页面使用tabLayout+viewPager实现。其它导航页面,内容自定义。 private TabLayout f1_tab; private ViewPager f1_vp; private List<Fragment> fal; private List<String> list = new ArrayList<String>(); @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.f1, container, false); f1_tab = view.findViewById(R.id.f1_tab); f1_vp = view.findViewById(R.id.f1_vp); return view; } @Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); initData(); MyFragPageAdapter adapter = new MyFragPageAdapter(getChildFragmentManager()); f1_vp.setAdapter(adapter); // setupWithViewPager必须在ViewPager.setAdapter()之后调用 // 具体原因查看源码 f1_tab.setupWithViewPager(f1_vp); } private void initData() { fal = new ArrayList<>(); F01 f01 = new F01(); F02 f02 = new F02(); F02 f03 = new F02(); F02 f04 = new F02(); fal.add(f01); fal.add(f02); fal.add(f03); fal.add(f04); } class MyFragPageAdapter extends FragmentPagerAdapter { private int pages = 4; private Context context; private String[] datas = {"推荐", "课程", "实战", "职业路径"}; //构造必须一个FragmentManager管理器,注意也是v4里的 public MyFragPageAdapter(android.support.v4.app.FragmentManager fm, Context context) { super(fm); this.context = context; } public MyFragPageAdapter(FragmentManager childFragmentManager) { super(childFragmentManager); } @Override public int getCount() { return pages; } @Override public Fragment getItem(int position) { /* Bundle bundle = new Bundle(); if(list.get(position).equals("推荐")){ bundle.putString("name","xbsjxw"); }else if (list.get(position).equals("课程")){ bundle.putString("name","txs"); }else if (list.get(position).equals("实战")){ bundle.putString("name","toutiao"); }else if (list.get(position).equals("职业路径")){ bundle.putString("name","news/mobile/jbgg"); } fal.get(position).setArguments(bundle);*/ return fal.get(position); } @Override public CharSequence getPageTitle(int position) { return datas[position]; } }}
F01:
public class F01 extends Fragment{ List<JavaBean.ResultsBean> mylist = new ArrayList<>(); private PullToRefreshListView f01_pull; String baseUrl = "http://gank.io/api/data/Android/10/1"; private ListView lv; private MyItemAdapter adapter; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.f01, container, false); f01_pull = view.findViewById(R.id.pull1); return view; } @Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); lv = f01_pull.getRefreshableView(); f01_pull.setMode(PullToRefreshBase.Mode.BOTH); f01_pull.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() { @Override public void onPullDownToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) { mylist.clear(); getNetData(); } @Override public void onPullUpToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) { getNetData(); } }); getNetData();//请求listview接口数据 adapter = new MyItemAdapter(); lv.setAdapter(adapter); } private void getNetData() { new MAsyncTask().execute("http://gank.io/api/data/Android/10/1"); } class MyItemAdapter extends BaseAdapter { private ViewHolder1 viewHolder1; @Override public int getCount() { // Log.e("wzq", "getCount:" + mylist.size()); return mylist.size(); } @Override public Object getItem(int i) { return mylist.get(i); } @Override public long getItemId(int i) { return i; } @Override public int getViewTypeCount() { return 2; } @Override public int getItemViewType(int position) { int type = 0; List<String> images = mylist.get(position).getImages(); if(images!=null && images.size()==1){ return type; }else{ type =1; return type; } } @Override public View getView(int i, View view, ViewGroup viewGroup) { int type = getItemViewType(i); switch (type){ case 0: if(view == null){ viewHolder1 = new ViewHolder1(); view = View.inflate(getActivity(), R.layout.item1, null); viewHolder1.item_tv = view.findViewById(R.id.item_tv); viewHolder1.item_img = view.findViewById(R.id.item_img); viewHolder1.item_tv.setText(mylist.get(i).getDesc()); //调用显示图片 ImageLoader instance = ImageLoader.getInstance(); instance.displayImage(mylist.get(i).getImages().get(0),viewHolder1.item_img, MyApp.getDisOptions()); } break; case 1: if(view == null){ viewHolder1 = new ViewHolder1(); view = View.inflate(getActivity(), R.layout.item1, null); viewHolder1.item_tv = view.findViewById(R.id.item_tv); viewHolder1.item_tv.setText(mylist.get(i).getDesc()); } break; } return view; } } class ViewHolder1{ ImageView item_img; TextView item_tv; } class ViewHolder2{ TextView item_tv1; } class MAsyncTask extends AsyncTask<String ,Void, String> { @Override protected String doInBackground(String... strings) { return NetUtils.getNetJson(strings[0]); } @Override protected void onPostExecute(String s) { super.onPostExecute(s); Gson gson = new Gson(); JavaBean javaBean= gson.fromJson(s, JavaBean.class); List<JavaBean.ResultsBean> datas = javaBean.getResults(); mylist.addAll(datas); adapter.notifyDataSetChanged(); f01_pull.onRefreshComplete(); } }}
阅读全文
0 0
- 侧拉——我的相册——基础布局逻辑
- 侧拉——我的相册—权限。依赖。布局
- UICollectionView自定义布局——制作小相册
- RocketMQ——Consumer端自动地不间断地发起拉取消息的业务逻辑
- RSA的数学基础——欧拉函数与欧拉定理
- iOS开发实战——摄像头与相册权限获取逻辑优化
- 旅游吧!我在这里 ——旅游相册POI搜索:找回你的足迹
- 旅游吧!我在这里—旅游相册POI搜索:找回你的足迹
- 假装是一个成功的布局——3、java逻辑代码
- 我的课表—android 表格布局应用
- 【数论】【素数】素数相关基础——欧拉函数与欧拉定理
- android基础——界面布局(二) 线性布局
- Android核心基础——S01E08_拨号器的布局
- Css+Div布局学习(一)—Div布局基础
- 慕课网学习笔记----《网页布局基础》—绝对定位布局
- 桃花相册开发笔记(1)——基于人脸识别的相册软件
- 桃花相册开发笔记(2)——基于人脸识别的相册软件
- 桃花相册开发笔记(3)——基于人脸识别的相册软件
- DP题目
- ICPC 2015 北京 Today Is a Rainy Day
- 机房重构---下机
- redis命令快速检索
- AsyncHttpClient 网络请求+ fastJson解析数据
- 侧拉——我的相册——基础布局逻辑
- 【网络流二十四题 太空飞行计划问题】【最大权闭合图->最小割】
- C++基本语法
- JVM-垃圾收集器
- hdu
- redis持久化内存数据库中的数据到文件,以及从文件中初始化数据到内存数据库
- 带模板的基于 SBT 的名次树
- python基础(01)——注释,变量,数字类型
- 【SpringData】轻松愉快之玩转SpringData( 第1章 课程介绍 )