【问题标题】:How to change the action bar color and open a file on click?如何更改操作栏颜色并单击打开文件?
【发布时间】:2017-12-20 17:35:30
【问题描述】:

我现在正在开发一款适用于 Android 的应用程序,但有两件事我不知道该怎么做。

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

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

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

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

谢谢!

【问题讨论】:

  • 你用的是什么版本的安卓?

标签: java android android-actionbar background-color shortcut


【解决方案1】:

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) 是的,你可以,这就像有意识地打开新的 Activity。 Android 有一些内置的Intent Action Type 可以帮助您打开或查看特定文件,但为此您需要知道要处理的文件类型。

假设如果您的文件类型按文档类型分类,您可以使用,

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

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

你可以使用,

ACTION_VIEW

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

guessContentTypeFromName (String url)Link

getMimeTypeFromExtension(String extension)Link

希望这会有所帮助:)

【讨论】:

  • 我需要在特定位置打开特定的 xlsx 文件,我试图阅读一些关于这样做的意图,但我不明白该怎么做。你能告诉我具体的语法吗?
【解决方案2】:

您不能更改颜色,因为您应该调用getSupportActionBar() 并且它也适用于 api >11;

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

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

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

我建议您对所有代码和此信息提出另一个问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-31
    • 1970-01-01
    • 2012-11-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多