Android开源项目SlidingMenu本学习笔记(两)

我们已经出台SlidingMenu使用:Android开源项目SlidingMenu本学习笔记(一个),接下来再深入学习下。依据滑出项的Menu切换到相应的页面

文件夹结构:




点击Bluetooth能够切换到对应的界面


关键代码

MainActivity.java

package com.dzt.slidingmenudemo;import android.app.Fragment;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.util.Log;import com.dzt.slidingmenudemo.fragment.BluetoothFragment;
import com.dzt.slidingmenudemo.fragment.DisplayFragment;
import com.dzt.slidingmenudemo.fragment.HomeFragment;
import com.dzt.slidingmenudemo.fragment.MenuFragment;
import com.dzt.slidingmenudemo.fragment.WifiFragment;
import com.dzt.slidingmenudemo.fragment.MenuFragment.OnMenuListOnItemClickListener;
import com.slidingmenu.lib.SlidingMenu;
import com.slidingmenu.lib.app.SlidingActivity;/*** 依据不同的Menu切换到对应的Fragment* * @author Administrator* */
public class MainActivity extends SlidingActivity implementsOnMenuListOnItemClickListener {private SlidingMenu mChannelMenu;@Overridepublic void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);// 设置标题栏的标题setTitle("測试SlidingMenu");setContentView(R.layout.content_frame);initChannelMenu();}private void initChannelMenu() {setBehindContentView(R.layout.menu_frame);// 创建SlidingMenu对象mChannelMenu = getSlidingMenu();// 设置側滑栏菜单位置,这里在左边。拉动菜单时。会从左边弹出mChannelMenu.setMode(SlidingMenu.LEFT);// 设置触摸的范围,这里设置全屏mChannelMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);// 设置阴影的宽度,查看上面第二张效果图,靠右边的位置,有一个阴影过渡。就是这个东西mChannelMenu.setShadowWidthRes(R.dimen.shadow_width);// 这里是阴影效果,能够设置图片或者一个颜色过渡mChannelMenu.setShadowDrawable(R.drawable.shadow);// 设置后面间距,側滑栏和原来界面间距mChannelMenu.setBehindOffsetRes(R.dimen.slidingmenu_offset);// 边框的角度,这里指边界地方mChannelMenu.setFadeDegree(0.35f);// 设置触摸屏幕的模式mChannelMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);// 设置SlidingMenu的内容FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();MenuFragment menuFragment = new MenuFragment();menuFragment.setOnMenuListOnItemClickListener(this);fragmentTransaction.replace(R.id.menu_frame, menuFragment);fragmentTransaction.replace(R.id.content_frame, new HomeFragment());fragmentTransaction.commit();}@Overridepublic void onBackPressed() {if (mChannelMenu.isMenuShowing()) {// 隐藏SlidingMenu,这里的Content就是我们的主ActivitymChannelMenu.showContent();} else {super.onBackPressed();}}@Overridepublic void onSelectItem(int position, String title) {// TODO Auto-generated method stubSystem.out.println("onSelectItem title = " + title);Fragment fragment = null;switch (position) {case 0:fragment = new HomeFragment();break;case 1:fragment = new WifiFragment();break;case 2:fragment = new BluetoothFragment();break;case 3:fragment = new DisplayFragment();break;default:break;}if (fragment != null) {FragmentManager fragmentManager = getFragmentManager();fragmentManager.beginTransaction().replace(R.id.content_frame, fragment).commit();// update selected item and title, then close the drawersetTitle(title);mChannelMenu.showContent();} else {// error in creating fragmentLog.e("MainActivity", "Error in creating fragment");}}}
滑出的Fragment MenuFragment.java

package com.dzt.slidingmenudemo.fragment;import java.util.ArrayList;import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;import com.dzt.slidingmenudemo.MenuListAdapter;
import com.dzt.slidingmenudemo.R;
import com.dzt.slidingmenudemo.domain.MenuItem;public class MenuFragment extends Fragment implements OnItemClickListener {private ListView mLv;private String[] mMenuTitles;private ArrayList<MenuItem> mMenuItem;private MenuListAdapter mAdapter;private OnMenuListOnItemClickListener mListener;public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {View rootView = inflater.inflate(R.layout.menu_fragment, container,false);initWidgets(rootView);return rootView;}private void initWidgets(View rootView) {mLv = (ListView) rootView.findViewById(R.id.left_menu);mMenuTitles = getResources().getStringArray(R.array.menu_title);mMenuItem = new ArrayList<MenuItem>();for (int i = 0; i < mMenuTitles.length; i++) {MenuItem item = null;if (i == 2) {item = new MenuItem(mMenuTitles[i], R.drawable.ic_launcher,"18", true);} else if (i == 4) {item = new MenuItem(mMenuTitles[i], R.drawable.ic_launcher,"40", true);} else {item = new MenuItem(mMenuTitles[i], R.drawable.ic_launcher);}mMenuItem.add(item);}mAdapter = new MenuListAdapter(getActivity(), mMenuItem);mLv.setAdapter(mAdapter);mLv.setOnItemClickListener(this);}@Overridepublic void onItemClick(AdapterView<?> parent, View view, int position,long id) {// TODO Auto-generated method stubmLv.setItemChecked(position, true);mLv.setSelection(position);if (mListener != null) {mListener.onSelectItem(position, mMenuTitles[position]);}}public void setOnMenuListOnItemClickListener(OnMenuListOnItemClickListener listener) {mListener = listener;}public interface OnMenuListOnItemClickListener {public void onSelectItem(int position, String title);}
}
点击Menu后。在MainActivity中实现了点击的监听器。就会切换到对应的页面

相关代码:http://download.csdn.net/detail/deng0zhaotai/7862727

版权声明:本文博客原创文章,博客,未经同意,不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/288483.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

扒开系统调用的三层皮(下)

5234 原创作品转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 1.给MenuOS增加time和time-asm命令 步骤 rm menu -rf //强制删除git clonehttp://github.com/menging/menu.git // 克隆相关信息到menucd menumake rootfs //自动编…

Hello Playwright:(1)从开发到部署

前言虽然前面写过几篇 C# 使用 Playwright 的文章&#xff0c;但是讲解的不太全面。看到有朋友有学习这方面的需要&#xff1a;因此&#xff0c;就有了《Hello Playwright》这个系列的产生。Playwright 介绍Playwright 是微软开源的一个基于 Node.js 的工具库&#xff0c;可使用…

没有主清单属性_原神:晴知的主C诺艾尔大型进阶攻略初版

作者&#xff1a;NGA-最可爱的晴知前言大家好我是晴知&#xff0c;一个诺艾尔主C玩家(目前是0命座)&#xff0c;截至10月8日&#xff0c;我的账号等级为41级&#xff0c;深境螺旋11层打通&#xff0c;但星数不够12层&#xff0c;一者因为圣遗物太烂而我想45级再刷圣遗物&#x…

【ArcGIS风暴】ArcGIS栅格数据(分区)统计方法总结

【问题描述】如图所示,如何根据中国植被区划分区,统计各个区域内NDVI的平均值? 目录 1、Layer Properties 2、Zonal Statistics as Table 3、Band Collection Statistics 分区统计及根据统计区域或赋值栅格为每个区域计算统计数据。分区统计包括众数、最大值、均值、中位…

快速合并同一个excel表中的多个sheet

很多朋友会遇到这样的问题,就是很有很多页的数据,少的有几十页,多的可能有几百页,然后需要合并到一个页面做数据分析,如果一页页的复制粘贴的话,就比较麻烦。下面我就介绍一种利用excel的宏计算来解决这个问题。 一、数据准备 二、合并效果

释放内存软件_原来苹果手机这样清理内存,可以释放大量空间,真是太好用了...

相信大家都喜欢用苹果手机&#xff0c;给人感觉就是流畅&#xff0c;但是苹果手机使用久了&#xff0c;内存不足也会导致卡顿的&#xff0c;今天就来教大家清理苹果手机内存的方法&#xff0c;可以释放大量空间。一、正确卸载软件很多人在使用手机时&#xff0c;发现有些软件不…

gitlab永久设置密码

在 .gitconfig 文件中加入&#xff1a; [credential] helper store .git-credentials close address转载于:https://www.cnblogs.com/rhxuza1993/p/7355952.html

程序对拍

在一些特殊的比赛中&#xff0c;我们需要用一个暴力程序来验证一个采取了高效算法的程序是否正确&#xff0c;所以就有了对拍。 对拍程序&#xff1a; echo off :loop rand.exe>data.in std.exe<data.in>std.outmy.exe<data.in>my.out fc my.out std.out …

Xamarin效果第二十三篇之离线语音识别

在前面文章中简单玩了玩GIS的基本操作、Mark相关、AR、测距、加载三维白模、可扩展浮动操作和录音效果;今天抽空再来分享一下最近摸索的基于讯飞的离线语音识别效果,其实就简单用了一下离线命令词识别,看效果:1、先去控制台创建应用:https://console.xfyun.cn/app/myapp2、去组…

linux脚本漏洞,Silver Peak VX跨站脚本漏洞(CVE-2014-2975)

发布日期&#xff1a;2014-07-28更新日期&#xff1a;2014-07-30受影响系统&#xff1a;silver peak Silver Peak VX描述&#xff1a;--------------------------------------------------------------------------------BUGTRAQ ID: 68923CVE(CAN) ID: CVE-2014-2975Silver P…

JSON.parse()和JSON.stringify()

为什么80%的码农都做不了架构师&#xff1f;>>> parse用于从一个字符串中解析出json对象,如 var str {"name":"huangxiaojian","age":"23"} 结果&#xff1a; JSON.parse(str) Object age: "23"name: "hu…

如果编程语言是女孩子

试想一下&#xff0c;当Java、C、Python、Ruby、PHP、C#、JS等编程语言变成了动漫人物会是怎样的一幅场景呢&#xff1f;下面就一起看看在日本作家渡辺将人的笔下&#xff0c;各种编程语言都是哪类可爱的女孩子的吧&#xff01; 究竟心里有多喜欢&#xff0c;才能画出如此可爱的…

在MAUI中使用Masa Blazor

Masa Blazor是什么在此之前我们已经介绍过什么是Masa Blazor&#xff0c;以及如何使用Masa Blazor&#xff0c;如果还有不了解Masa Blazor的同学可以看我上篇文章【初识Masa Blazor】。那么今天就带大家探索一下如何在MAUI中使用Masa Blazor,那么我们先来了解一下什么是MAUI&am…

exchange2013 owa-outlook界面语言

环境&#xff1a;Exchange 2013客户需求&#xff1a;在海外有分支机构&#xff0c;希望这些人的owa和outlook都是英文一般在登陆owa时&#xff0c;通过用户名和密码验证完成后会提示选择语言和时区&#xff0c;根据客户端的浏览器里面的语言会有一个默认选项英文系统中文系统Ou…

测试网速_使用Speedtest CLI测试你的网速

在本文中我们将使用一个名为speedtest-cli的命令行工具来测试网速。它是用Python语言编写的工具&#xff0c;系统通过向speedtest.net网站上传和下载数据来测试带宽。环境Centos7安装speedtest-cli工具在安装speedtest-cli之前&#xff0c;我们需要安装先安装python3-pip包管理…

C# IEnumerator IEnumerable接口

前言使用linq的时候大家应该都知道IEnumerable和IEnumerator接口&#xff01;解释一下IEnumerable 它利用 GetEnumerator() 返回 IEnumerator 集合访问器,声明实现该接口的class是“可枚举(enumerable)”的 通俗点说就是可进行迭代操作的类型。IEnumerator解释&#xff1a;它是…

filter与servlet对照

最近在开java物自&#xff0c;还记得刚开始使用servlet这是一个调试ajax什么时候&#xff0c;然后&#xff0c;我不知道怎么用&#xff0c;你知道写的路径来调用&#xff0c;总是提示404错&#xff0c;&#xff0c;到最后自己一点点的调通了&#xff0c;知道servlet是须要serve…

vc++ 提取网页上的文字_网页内容不让你复制?老师傅教的这招太绝了,1键提取全网文字...

在网上冲浪&#xff0c;看到了一些不错的文字&#xff0c;想要复制下来&#xff0c;可是网站就不让你复制&#xff0c;非要你注册登录账号&#xff0c;更有甚者要你购买VIP才能复制文字&#xff0c;这不是天方夜谭吗&#xff1f;今天老师傅就教你一招&#xff0c;学会了网页文字…

使用 C# 生成 EMF 矢量图形文件

前言公众号上有网友询问我如何生成 EMF 文件的问题&#xff1a;本以为非常简单&#xff0c;我快速给出了解决方案&#xff1a;var bitmap new Bitmap(640, 480);var g Graphics.FromImage(bitmap);g.DrawString("My IO", new Font(FontFamily.GenericSerif, 10), B…

php register_shutdown_function响应error 配合error_get_last 捕获错误

register_shutdown_function 函数,当我们的脚本执行完成或意外死掉导致PHP执行即将关闭时,我们的这个函数将会 被调用&#xff0c;可以配合 error_get_last 使用&#xff0c;代码如下&#xff0c;注释已经解释了代码了&#xff1a; error_get_last 稍后解释 <?php //a bo…