首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AssemblyInfo主题,类库

AssemblyInfo主题,类库
EN

Stack Overflow用户
提问于 2017-04-26 10:56:13
回答 1查看 133关注 0票数 0

我目前正在一个类库(Android)项目中工作。这个项目应该与多个其他项目一起工作,因此无法预先知道每个主项目可能有哪个主题。但是,我打算使用v7.AlertDialog,它在清单的应用程序标记上没有Theme.AppCompat就不能工作,但是没有类库(Android)的manifest。

通过使用assemblyinfo.cs文件请求权限和特性,我获得了成功。现在我想补充以下几点:

代码语言:javascript
复制
[assembly: Application(Theme = "@android:style/Theme.AppCompat.Light")]

但是,当此代码运行时,它将失败:

代码语言:javascript
复制
                AlertDialog7.Builder builder = new AlertDialog7.Builder(this);
                AlertDialog7 alert = builder.Create();
                alert.Show();

输出:未处理的异常: Java.Lang.IllegalStateException:您需要在此活动中使用Theme.AppCompat主题(或后代)。

如果我将其添加到应用程序标记中,则项目运行时不会出现任何问题:

代码语言:javascript
复制
 android:theme="@style/Theme.AppCompat.Light"

我尝试将主题添加到AlertDialog中,但也失败了:

代码语言:javascript
复制
AlertDialog7.Builder builder = new AlertDialog7.Builder(this, <THEME>);

还试图添加到也失败的活动标记中:

代码语言:javascript
复制
[Activity(Theme = <THEME>)]

问:如何确保类库(Android)独立于主项目主题正常工作,以及如何在不使用主项目声明的情况下将主题添加到类库项目中?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-26 11:08:21

在这个问题上花了几个小时之后,我终于得到了一个解决办法。

我只是改变了这一点:

代码语言:javascript
复制
[assembly: Application(Theme = "@android:style/Theme.AppCompat.Light")]

对此:

代码语言:javascript
复制
[assembly: Application(Theme = "@style/Theme.AppCompat.Light")]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43632190

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档