我在活动中有以下代码:
protected void onCreate(Bundle savedInstanceState) {
...
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
actionBar.setDisplayHomeAsUpEnabled(true);
}
...
}
我正在从onresume()
中的不同片段更新ActionBar标题,如下所示:
ActionBar actionBar = ((AppCompatActivity) getActivity()).getSupportActionBar();
if (actionBar != null) {
actionBar.setTitle(title);
}
final ActionBar actionBar = ((AppCompatActivity)getActivity()).getSupportActionBar();
if (actionBar != null) {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Log.d("SWAPNIL", "IN RUN BEFORE: " + actionBar.getTitle());
actionBar.setTitle(title);
Log.d("SWAPNIL", "IN RUN AFTER : " + actionBar.getTitle());
}
}, 3000);
}
10-13 10:27:04.526 3719-3719/com.example.xxxx D/SWAPNIL: onResumeHelp
10-13 10:27:07.528 3719-3719/com.example.xxxx D/SWAPNIL: IN RUN BEFORE: MY APP NAME
10-13 10:27:07.528 3719-3719/com.example.xxxx D/SWAPNIL: IN RUN AFTER : title
10-13 10:27:21.012 3719-3719/com.example.xxxx D/SWAPNIL: onResumeHelp
10-13 10:27:24.013 3719-3719/com.example.xxxx D/SWAPNIL: IN RUN BEFORE: title
10-13 10:27:24.013 3719-3719/com.example.xxxx D/SWAPNIL: IN RUN AFTER : title
好吧,最后,在花了两天时间在这个愚蠢的事情上,我得到了解决方案(我会说变通)。
这可能是嵌套的片段
错误。
我有嵌套片段结构。正如我们所知,fragment.getactivity()
返回父级activity
。经过大量调试后,我注意到如果在方向改变后调用getactivity()
(fragment.onactivitycreate()
),它会返回旧的活动的引用,除非在最上层的父片段中正确地返回新创建的
活动。
因此,我编写了这个方法来从任何片段
获取当前活动
:
/**
* When inside a nested fragment and Activity gets recreated due to reasons like orientation
* change, {@link android.support.v4.app.Fragment#getActivity()} returns old Activity but the top
* level parent fragment's {@link android.support.v4.app.Fragment#getActivity()} returns current,
* recreated Activity. Hence use this method in nested fragments instead of
* android.support.v4.app.Fragment#getActivity()
*
* @param fragment
* The current nested Fragment
*
* @return current Activity that fragment is hosted in
*/
public Activity getActivity(Fragment fragment) {
if (fragment == null) {
return null;
}
while (fragment.getParentFragment() != null) {
fragment = fragment.getParentFragment();
}
return fragment.getActivity();
}
我的android应用程序有一个工具栏,我想改变它的标题。我使用了toolbar.settitle(),但它不起作用...请帮忙。我该怎么办?我尝试了getSupportActionBar().setTitle(),但它不起作用。
如何从工具栏中获取图标以更改为使用bbdd中看到的方法获得的新图标。问题是我无法访问更新活动的事件以更改图标。我尝试使用onPreareOptionsMenu方法,但无法使其工作。我无法通过将代码放入onStart来做到这一点,因为它告诉我菜单对象为空或无效。 我的活动由AppCompactActive扩展并通过AdapterView加载。当我返回片段对话框或从下一个活动开始时,我遇到了问题。 谢
我尝试这样更改我的AndroidManifest: 但现在这个名字到处都是(在主页和应用程序的标题上)“[T]ime[T]racking[M]anager”。我怎么能给他们起不同的名字呢?
我正在整合黑暗模式,我有折叠工具栏和包装在appbarlayout中的工具栏,问题是当我尝试设置工具栏标题颜色为白色时,暗模式设置,它是不工作的同时,在亮模式,颜色显示相应,我尝试了几乎所有但我不知道确切地发生了什么,我有颜色和颜色夜文件夹,我为两者设置了颜色,并添加到我的工具栏,但它没有改变任何东西,如果有人可以帮助,我将深深感谢它,谢谢 这是我的xml代码 这是彩色文件夹 这是夜间文件夹
问题内容: 当我更改collapsesingToolbar的标题时,标题不变。 我已经尝试过getSupportActionBar.setTitle和crashToolbar.setTitle,但这没有帮助。告诉我,怎么了? 问题答案: 我相信这个问题描述了您所遇到的问题。我也遇到了这个问题,并且今天已经解决了。本质上,处理折叠文本的代码仅在当前文本为null或文本大小更改时更新文本。当前,这是一
我刚刚完成了我的第一个android应用程序,并生成了一个apk文件在我的手机上测试。然后我意识到我在制作项目时留下了默认的“My Application”名称。所以安装的应用程序名为“我的应用程序”。如何更改应用程序的名称?