如何更改操作栏颜色并单击打开文件?

问题描述 投票:0回答:2

我现在正在使用Android应用程序,有两件事我不知道该怎么做。

  1. 我想根据用户的要求更改操作栏的颜色,所以我想动态更改它。我看到一些答案说我需要使用:

ActionBar bar = getActionBar();
bar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#004D40")));

但由于某种原因,它对我不起作用。

  1. 我已添加到我的应用程序选项以下载文件,但我以不寻常的方式执行此操作,因此在下载完成时不会创建通知。我想给我的用户一个简单的方法来获取文件。我可以创建一个按钮,在单击时打开文件吗?

谢谢!

java android android-actionbar background-color shortcut
2个回答
0
投票

1)为此,我建议您使用Example here工具栏视图并将其设置为操作栏。只需在顶部添加此视图:

<android.support.v7.widget.Toolbar
android:id="@+id/my_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
android:elevation="4dp"
android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>

然后在Activity中

 Toolbar myToolbar = (Toolbar) findViewById(R.id.my_toolbar);
 setSupportActionBar(myToolbar);

在此之后,您可以将所有想要的内容更改为查看myToolbar。设置背景颜色等它会起作用。仅使用Actionbar是一种陈旧且苛刻的方法。

2)是的,你可以,就像打开新的活动一样。 Android有一些内置的Intent Action Type可以帮助你打开或查看特定的文件,但为此你需要知道你要处理哪种类型的文件。

假设您有可以使用的文档类型分类的文件类型,

ACTION_OPEN_DOCUMENT与特定的MIME_TYPE(Android 4.4或更高版本)

或者如果要处理某些媒体文件(音频/视频)

您可以使用,

ACTION_VIEW

要识别特定文件的MIME_TYPE,您可以使用函数

guessContentTypeFromName (String url)Link

或者getMimeTypeFromExtension(String extension)Link

希望这可以帮助 :)


0
投票

你不能改变颜色,因为你应该调用getSupportActionBar(),它也适用于api> 11;

getSupportActionBar().setBackgroundDrawable(new ColorDrawable(getResources().getColor(android.R.color.black)‌​));

要么

getSupportActionBar().setBackgroundDrawable(new ColorDrawable(Color.parseColor("#004D40")​));

关于您的第二个问题,我们需要您下载文件的更多信息和代码。您完全可以访问onClick上的文件,但您需要知道文件类型和存储文件的目录以及目标api以检查运行时权限,例如

我建议你用你的所有代码和这些信息提出另一个问题

© www.soinside.com 2019 - 2024. All rights reserved.