android fragment 抽屉,android – 更改Fragment中的导航抽屉项目

我有一个MainActivity启动导航抽屉.

也有一些碎片.

我需要从片段内部更改导航抽屉列表的标题.

我尝试了这个内部片段:

navMenuTitles = getActivity().getResources().getStringArray(R.array.nav_drawer_items);

navMenuTitles[1] = username;

但到目前为止没有运气.这是我的主要活动:

public class MainActivity extends Activity {

private DrawerLayout mDrawerLayout;

private ListView mDrawerList;

private ActionBarDrawerToggle mDrawerToggle;

// nav drawer title

private CharSequence mDrawerTitle;

// used to store app title

private CharSequence mTitle;

// slide menu items

private String[] navMenuTitles;

private TypedArray navMenuIcons;

private ArrayList navDrawerItems;

private NavDrawerListAdapter adapter;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

mTitle = mDrawerTitle = getTitle();

// load slide menu items

navMenuTitles = getResources().getStringArray(R.array.nav_drawer_items);

// nav drawer icons from resources

navMenuIcons = getResources()

.obtainTypedArray(R.array.nav_drawer_icons);

mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);

mDrawerList = (ListView) findViewById(R.id.list_slidermenu);

navDrawerItems = new ArrayList();

// adding nav drawer items to array

// Home

navDrawerItems.add(new NavDrawerItem(navMenuTitles[0], navMenuIcons.getResourceId(0, -1)));

// Find People

navDrawerItems.add(new NavDrawerItem(navMenuTitles[1], navMenuIcons.getResourceId(1, -1)));

// Photos

navDrawerItems.add(new NavDrawerItem(navMenuTitles[2], navMenuIcons.getResourceId(2, -1)));

// Communities, Will add a counter here

navDrawerItems.add(new NavDrawerItem(navMenuTitles[3], navMenuIcons.getResourceId(3, -1), true, "22"));

// Pages

navDrawerItems.add(new NavDrawerItem(navMenuTitles[4], navMenuIcons.getResourceId(4, -1)));

// Recycle the typed array

navMenuIcons.recycle();

mDrawerList.setOnItemClickListener(new SlideMenuClickListener());

// setting the nav drawer list adapter

adapter = new NavDrawerListAdapter(getApplicationContext(),

navDrawerItems);

mDrawerList.setAdapter(adapter);

// enabling action bar app icon and behaving it as toggle button

getActionBar().setDisplayHomeAsUpEnabled(true);

// getActionBar().setHomeButtonEnabled(true);

mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,

R.drawable.ic_drawer, //nav menu toggle icon

R.string.app_name, // nav drawer open - description for accessibility

R.string.app_name // nav drawer close - description for accessibility

) {

public void onDrawerClosed(View view) {

getActionBar().setTitle(mTitle);

// calling onPrepareOptionsMenu() to show action bar icons

invalidateOptionsMenu();

}

public void onDrawerOpened(View drawerView) {

getActionBar().setTitle(mDrawerTitle);

// calling onPrepareOptionsMenu() to hide action bar icons

invalidateOptionsMenu();

}

};

mDrawerLayout.setDrawerListener(mDrawerToggle);

if (savedInstanceState == null) {

// on first time display view for first nav item

displayView(0);

}

}

/**

* Slide menu item click listener

* */

private class SlideMenuClickListener implements

ListView.OnItemClickListener {

@Override

public void onItemClick(AdapterView> parent, View view, int position,

long id) {

// display view for selected nav drawer item

displayView(position);

}

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

getMenuInflater().inflate(R.menu.main, menu);

return true;

}

@Override

public boolean onOptionsItemSelected(MenuItem item) {

// toggle nav drawer on selecting action bar app icon/title

if (mDrawerToggle.onOptionsItemSelected(item)) {

return true;

}

// Handle action bar actions click

switch (item.getItemId()) {

case R.id.action_settings:

return true;

default:

return super.onOptionsItemSelected(item);

}

}

/* *

* Called when invalidateOptionsMenu() is triggered

*/

@Override

public boolean onPrepareOptionsMenu(Menu menu) {

// if nav drawer is opened, hide the action items

boolean drawerOpen = mDrawerLayout.isDrawerOpen(mDrawerList);

menu.findItem(R.id.action_settings).setVisible(!drawerOpen);

return super.onPrepareOptionsMenu(menu);

}

/**

* Diplaying fragment view for selected nav drawer list item

* */

private void displayView(int position) {

// update the main content by replacing fragments

Fragment fragment = null;

switch (position) {

case 0:

fragment = new HomeFragment();

break;

case 1:

fragment = new LoginFragment();

break;

case 2:

fragment = new PhotosFragment();

break;

case 3:

fragment = new CommunityFragment();

break;

case 4:

fragment = new PagesFragment();

break;

case 5:

fragment = new WhatsHotFragment();

break;

default:

break;

}

if (fragment != null) {

FragmentManager fragmentManager = getFragmentManager();

fragmentManager.beginTransaction()

.replace(R.id.frame_container, fragment).commit();

// update selected item and title, then close the drawer

mDrawerList.setItemChecked(position, true);

mDrawerList.setSelection(position);

setTitle(navMenuTitles[position]);

mDrawerLayout.closeDrawer(mDrawerList);

} else {

// error in creating fragment

Log.e("MainActivity", "Error in creating fragment");

}

}

@Override

public void setTitle(CharSequence title) {

mTitle = title;

getActionBar().setTitle(mTitle);

}

/**

* When using the ActionBarDrawerToggle, you must call it during

* onPostCreate() and onConfigurationChanged()...

*/

@Override

protected void onPostCreate(Bundle savedInstanceState) {

super.onPostCreate(savedInstanceState);

// Sync the toggle state after onRestoreInstanceState has occurred.

mDrawerToggle.syncState();

}

@Override

public void onConfigurationChanged(Configuration newConfig) {

super.onConfigurationChanged(newConfig);

// Pass any configuration change to the drawer toggls

mDrawerToggle.onConfigurationChanged(newConfig);

}

在Main Activity类中使用相同的方法但在Fragment中不起作用.我不知道如何更新String并通知抽屉这个改变!

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

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

相关文章

深入jvm虚拟机第三版源码_深入JVM虚拟机,阿里架构师直言,这份文档真的是JVM最深解读...

作为一名优秀的 Java 开发程序员,以及想那些想要学习 Java 更深层一点的知识的同学,对 JVM 的熟悉与熟练使用是必不可缺的核心技能了,也是每个 Java 程序员应该要做到的。深入学习 JVM 可以有助于我们掌握 Java 应用程序是如何运作的&#xf…

android 信鸽 自动重启,Android简单集成信鸽推送

添加项目的buid.gradlendk {//选择要添加的对应cpu类型的.so库abiFilters armeabi, armeabi-v7a, arm64-v8a// 还可以添加 x86, x86_64, mips, mips64}manifestPlaceholders [XG_ACCESS_ID:"2100332371",XG_ACCESS_KEY : "ABRD93KT147K",]依赖//采集安装列…

python颜色表_Python+matplotlib绘制不同大小和颜色散点图实例

具有不同标记颜色和大小的散点图演示。 演示结果: 实现代码: import numpy as np import matplotlib.pyplot as plt import matplotlib.cbook as cbook # Load a numpy record array from yahoo csv data with fields date, open, close, # volume, adj_…

android的充电线,充电线和数据线的区别

买安卓手机,一般配件都会有数据线,数据线可以当充电线使用,这我们都知道。充电线和数据线又有什么区别呢?下面是小编给大家整理的,供大家参阅!一般我们的数据线和充电线都是用USB接口的一般都会有四根线,充电线用到时…

python画方波_今天学会傅里叶画画,明天就是初音未来 - 如何用Python和Blender画任意图形...

前言: 最近在【编程德鲁伊】的【傅里叶级数可视化】章节中,练习了傅里叶级数基础原理的可视化,演示了周期方波曲线,可以分解为一系列正弦波曲线: 这次拿学到的知识做个实验,试试喜闻乐见的【用傅里叶级数画…

mtk android 5.1 logo,Android ROM DIY之MTK平台手机通用移植

在之前的文章中,我们讨论过ROM刷机原理,修改ROM包以及如何让ROM包获取root权限。那么接下来,我们谈谈MTK平台手机ROM移植的话题。如果你是ROM小白,那么建议可以先看看之前的文章。ROM刷机原理修改ROM包ROM包获取root权限好了请注意…

python变量类型是动态的_python内存动态分配过程详解

一、前言 大多数编译型语言,变量在使用前必须先声明,其中C语言更加苛刻:变量声明必须位于代码块最开始,且在任何其他语句之前。其他语言,想C和java,允许“随时随地”声明变量,比如,变量声明可以…

python树莓派串口通信实例_树莓派通过串口发送数据

可以通过串口登陆树莓派,也可以通过串口向其他主机发送数据。树莓派的串口接受数据科技爱好者博客已经写过,可以参考这篇文章:树莓派与arduino串口通信实践。这篇文章教大家如果通过树莓派的串口发送数据。 一、开启树莓派的串口功能 sudo ra…

sklearn朴素贝叶斯分类器_python机器学习:方法链和朴素贝叶斯分类器

今天我们在学习朴素贝叶斯分类器之前,我们先来总结下前面经常用到的内容,方法链:在scikit-learn中所有模型的fit方法返回的都是self。我们用一行代码初始化模型并拟合,对应代码如下:logreg LogisticRegression().fit(…

python怎么安装request_【python】如何安装requests

在cmd窗口输入pip install requests即可,如下 C:\Users\horn1\Desktop\python\4>pip install requests Collecting requests Downloading requests-2.18.4-py2.py3-none-any.whl (88kB) 100% |████████████████████████████████…

python读取json 网页_Python3 获取以及解析json格式

获取到某个页面的json数据 import requests import json url http://192.168.200.99:8000/student/response requests.get(url) print(response.text)print(type(response.text)) 数据结果: {"code": 1, "data": [{"sno": 0, "n…

24v开关电源维修技巧_焊机维修案例汇总6

案例1:开机保护检查整流桥、场管、快恢复二极管都正常。通电试机,面板亮黄灯,拔掉中板变压器接插线,黄灯灭,怀疑中板变压器有损坏。断电,用电感表测量变压器电感量,中板采用三个变压器并联&…

华为鸿蒙mota30手机多少钱,华为Mate30系列基本确认:麒麟985、鸿蒙系统、5G,价格满意!...

原标题:华为Mate30系列基本确认:麒麟985、鸿蒙系统、5G,价格满意!现在华为越来越的受到国人的重视,一方面是因为米国对于华为的不公正待遇,另一方面还是因为华为产品可以真正的让用户们认可。现在&#xff…

android组合控件 重叠,Android 组合控件实现布局的复用的方法

看到很多项目会有实现自己的标题栏的做法,通常的界面是左边按钮或文字,加上中间的标题和右边的按钮或文字组成的。比较好的一种做法是使用include标签,复用同一个xml文件来实现布局的复用。但是这种方法是通过代码的方式来设置标题&#xff0…

1到100的偶数之和是多少_新射雕群侠传之铁血丹心手游新侠客独孤求败全渠道上线 新玩法桃花岛开启...

点击上面蓝字获取更多精彩资讯金庸正版授权手游《新射雕群侠传之铁血丹心》新英雄独孤求败傲世登场,桃花岛新惊喜即将海量释放!国庆最长假期即将到来,《新射雕群侠传》玩法福利再度升级,不止是神话品质独孤求败的安卓全渠道开放,更…

python顺序结构实验_Python程序设计实验报告二:顺序结构程序设计(验证性实验)...

安徽工程大学 Python程序设计实验报告 班级物流192姓名芦靓学号3190505217成绩 日期2020.3.19 指导老师修宇 【实验名称】 实验二 顺序结构程序设计(验证性实验) 【实验目的】 (1)掌握数据的输入输出的方法; &#xff…

三星s9android recovery,三星手机怎么进入recovery模式?详细图文教程指导

【刷机之家】其实对于经常刷机的朋友来说进入recovery模式是一件再正常不过的事情了,但是对于很多刚刚接触刷机的新手朋友来说可能不太了解,当你仔细阅读完本教程之后相信即使你是一个完全不了解刷机的朋友也会知道该如何进入recovery模式。本教程主要是…

css布局方式_网页布局都有哪种?一般都用什么布局?

随着Web技术不断的革新,CSS近几年也变得多年前要更强大。在Web开发中,CSS是不可或缺的一部分,对于很多Web开发者来说,有很多CSS属性不知道,或者说他们知道,但忘记在最恰当的时候使用最适合的CSS属性。而且时…

复合消隐信号的作用_南大《AFM》:可拉缩、粘合、导电的双信号柔性彩色薄膜...

导读:本文得到了一种可伸缩、可粘合、可自修复、可导电的双信号柔性电子结构彩色薄膜,具有很大的应用潜力。柔性电子设备在各种应用中发挥着不可忽视的作用,如健康监控、感觉皮肤、可植入设备等。柔性电子材料的研究已取得了很大进展&#xf…

织梦编辑器加HTML视频显示很小,织梦去掉编辑器自动加div的方法即大小字情况...

织梦dedecms每次新上传图片插入编辑器会自动加p标签,这个会导致网页错位等问题。以下是修改方法。第一种解决方法:修改网站根目录\include\FCKeditor\editor\dialog\dede_image.php找到//FCK.InsertHtml(inImg);var newCode FCK.CreateElement(p);newCo…