设置主布局文件,为根布局设置一个id,作为内容区

给ListView的条目设置点击事件,setOnItemClickListener()方法,参数:上下文

当前的Fragment实现OnItemClickListener接口

实现onItemClick()方法

switch判断一下当前菜单的索引位置,根据索引来实例化不同的Fragment对象

调用getActivity()方法,得到宿主Activity对象,这个activity暴露一个方法,替换fragment

使用关键字instances of判断getActivity()得到的是MainActivity类的实例

调用宿主Activity对象的switchMenuFragment()方法,切换内容部分的fragment,参数:Fragment对象

宿主activity暴露方法switchMenuFragment(),切换内容区fragment,参数:Fragment对象

getSupportFragmentManager().beginTransaction().replace(R.id.ll_main_content, fragment).commit();

调用SlidingMenu对象的toggle()方法,关闭左侧菜单

设置默认,当app第一次打开时显示导航第一个的内容

MainActivity

package com.qingguow.news;import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;
import android.view.Window;import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;
import com.jeremyfeinstein.slidingmenu.lib.app.SlidingFragmentActivity;
import com.qingguow.news.fragment.IndexFragment;
import com.qingguow.news.fragment.MenuFragment;public class MainActivity extends SlidingFragmentActivity {private SlidingMenu sm;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);//设置滑动菜单
        setBehindContentView(R.layout.menu);setContentView(R.layout.activity_main);sm=getSlidingMenu();sm.setMode(SlidingMenu.LEFT);sm.setBehindWidth(200);sm.setShadowDrawable(R.drawable.shape);sm.setShadowWidth(5);sm.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);FragmentTransaction ft=getSupportFragmentManager().beginTransaction();//替换导航fragemntMenuFragment menuFragment=new MenuFragment();ft.replace(R.id.ll_left_menu, menuFragment);//替换内容fragmentIndexFragment index=new IndexFragment();ft.replace(R.id.ll_main_content, index).commit();}/*** 暴露方法切换内容区* @param fragment*/public void switchMenuFragment(Fragment fragment){getSupportFragmentManager().beginTransaction().replace(R.id.ll_main_content, fragment).commit();sm.toggle();}
}

MenuFragment.java

package com.qingguow.news.fragment;import java.util.ArrayList;
import java.util.List;import android.app.Activity;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListAdapter;
import android.widget.ListView;import com.qingguow.news.MainActivity;
import com.qingguow.news.R;public class MenuFragment extends Fragment implements OnItemClickListener {private View view;//加载布局文件
    @Overridepublic View onCreateView(LayoutInflater inflater,@Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {view = inflater.inflate(R.layout.list_view, null);return view;}//设置listview数据
    @Overridepublic void onActivityCreated(@Nullable Bundle savedInstanceState) {super.onActivityCreated(savedInstanceState);ListView listview = (ListView) view.findViewById(R.id.lv_menu);List<String> data=new ArrayList<String>();data.add("新闻");data.add("发现");data.add("关注");ListAdapter adapter = new ArrayAdapter<>(getActivity(),android.R.layout.simple_list_item_1, android.R.id.text1,data);listview.setAdapter(adapter);listview.setOnItemClickListener(this);}/*** 导航点击*/@Overridepublic void onItemClick(AdapterView<?> parent, View view, int position,long id) {Fragment fragment=null;switch (position) {case 0:fragment=new IndexFragment();break;default:break;}if(fragment!=null){Activity activity=getActivity();if(activity instanceof MainActivity){((MainActivity) activity).switchMenuFragment(fragment);}}}
}

[android] 新闻客户端实现左侧导航点击切换相关推荐

  1. Android新闻客户端实训-Day1类Day2接口基操

    结束了一些事情,本以为可以好好玩一段时间,结果紧接着又来了Android实训,因为这个实训已经开了一段时间了,我中途加入已经不赶趟了,但出于兴趣,准备今天开始跟着老师的笔记的源码从头开始自己摸索着学一 ...

  2. android新闻客户端报告,简易的Android新闻客户端

    学完Android基础之后不知道该怎么办?现在开始实战吧! 现在来看看一款简易的Android新闻客户端是怎么做的,当然,获取网络数据的这一部分我是使用别人做好的本地客户端,然后通过组建本地数据库来使 ...

  3. android 新闻频道,GitHub - xiyy/TopNews: 一款Android新闻客户端,并提供电视台直播功能...

    TopNews 一款Android新闻客户端,独立开发完成,主要功能包括: 1 新闻频道分类,头条.社会.国内.娱乐.体育.军事.科技.财经.时尚 使用ViewPager+FragmentPagerA ...

  4. android新闻客户端(有源码)

    有些功能还没实现 源码今天起不再免费提供,评论区有联系方式 目录 一. 题目及要求 2 二. 功能设计 3 三. 详细设计 3 1. 启动页面 3 1)页面显示完跳转 3 2) 启动页面图片全屏化 3 ...

  5. Android新闻客户端(仿网易)--下

    一.摘要继上一篇博客<模仿网易新闻客户端(上)>之后,笔者继续开发我们自己的"网易新闻客户端",由于找不到现成的url新闻链接地址,所以这里就用RSS订阅所提供的url ...

  6. android新闻客户端发展趋势,基于Android平台的新闻客户端设计与实现

    杨苏雯 摘 要 在Android开发平台上,并在JavaWeb开发的PC端新闻网站的基础上结合现在的需求开发了移动版的新闻客户端App,这个系统设计主要分为用户登录验证模块.新闻列表的显示功能模块以及 ...

  7. android新闻客户端实验报告,基于Android平台的新闻客户端设计与实现

    摘 要 在Android开发平台上,并在JavaWeb开发的PC端新闻网站的基础上结合现在的需求开发了移动版的新闻客户端App,这个系统设计主要分为用户登录验证模块.新闻列表的显示功能模块以及新闻内容 ...

  8. android新闻客户端的实现

    制作一个基于聚合新闻数据简单的新闻APP 制作简易新闻App 导航篇 [1.使用Fragment+ViewPager +TabLayout自制简易新闻 app主要框架(一)](https://blog ...

  9. android新闻客户端实验报告,Android 新闻客户端学习笔记

    学习了新闻客户端开发后,有很多是通用的,就把客户端用到的一些做个笔记,已备以后使用,主要用到的知识点有: 1.  Android网络编程 2.  Android中BaseAdapter的使用 3.   ...

最新文章

  1. [云炬创业基础笔记]第五章创业机会评估测试7
  2. Android 绿豆通讯录【 SQLite数据库(增删改查、展示数据) + ListView数据展示控件(展示所有数据) 】
  3. UVa 208 - Firetruck (回溯)
  4. 怎样配置键盘最方便,以及一些设计的思考
  5. 新手怎样学习C语言C++?
  6. 04737 c++ 自学考试2019版 第五章程序设计题 1
  7. 包装类、正则表达式、自动拆装箱基本知识总结
  8. 华为云文字识别服务产品优势、应用场景、典型案例和未来之路(OCR系列三)
  9. 在Silverlight中使用ESFramework-- ESFramework 4.0 快速上手(05)
  10. VS2010/MFC编程入门之前言
  11. 【随机数】深入理解random和srandom
  12. 移动边缘计算中的资源管理
  13. 贝叶斯网络python实现_在Python中使用贝叶斯网络的实例
  14. 物流管理源代码java_基于jsp的物流管理-JavaEE实现物流管理 - java项目源码
  15. 台达变频器485通讯接线图_三菱PLC 与台达VFD-L 变频器通讯(RS485)程序
  16. RX8025T RTC读写与秒中断
  17. python字典包含指定键_筛选python字典中键包含特定字符串的项
  18. UCloud宗泽:区块链安全现状堪忧,泡沫与价值并存
  19. 非常简单-Linux环境下(有公网IP)或虚拟主机的环境下如何做一个网站???
  20. deepsort训练车辆特征参数

热门文章

  1. 一文搞懂重复测量资料分析
  2. 实验新手必须知道的细胞计数技巧
  3. ab plc软件_回收拆机拆厂二手机械设备回收PLC自动化物资回收【研发吧】
  4. python插件化设计_Python打造出适合自己的定制化EclipseIDE
  5. JC法在matlab,自贡自流井启闭机--四川闸门厂家产品中心
  6. python判断是不是文件夹_Python判断文件和文件夹是否存在的方法
  7. 工业用微型计算机(25)-伪操作(1)
  8. 【NLP】darmatch: 一个非常高效的多模式字符串匹配工具
  9. 【职场】税前110万
  10. 斯坦福大学CS229数学基础(线性代数、概率论)中文翻译版.pdf