1

我正在尝试使用 java 而不是 xml 创建自定义状态栏通知布局。我创建了一个线性布局,设置了所需的参数,在通知远程视图中设置它,但它给了我 FC。(“发布了错误通知”)

这是我的测试代码:

LinearLayout layoutTest;
layoutTest = new LinearLayout(this);
layoutTest.setOrientation(LinearLayout.VERTICAL);

LayoutParams paramTest = new LinearLayout.LayoutParams(
             LayoutParams.FILL_PARENT,
             LayoutParams.FILL_PARENT, 1.0f); 

layoutTest.setLayoutParams(paramTest);
layoutTest.setId(R.id.mlinearlayout);

contentView = new RemoteViews(this.getPackageName(), R.id.mlinearlayout);
nbuilder.setContent(contentView);
// and all the other notification builder good stuff

我对 setId() 不是很熟悉,这可能是问题所在吗?对于我创建的 id /res/values/ids.xml :

<?xml version="1.0" encoding="utf-8"?>
<resources>
<item type="id" name="mlinearlayout" />
</resources>

任何帮助将不胜感激!

4

1 回答 1

0

这可能与RemoteViews构造函数期望 XML 文件的标识符有关,而您正在传递元素的标识符。

也许它可以让您更深入地了解 RemoteView 方法的来源,例如public View apply(Context context, ViewGroup parent)使用布局 id 在哪里膨胀视图。

您真的必须以编程方式进行吗?XML 似乎是要走的路,至少是记录在案的方法,而且我看不到您的代码中的原因,为什么您需要以编程方式进行操作。

于 2012-07-06T17:54:31.770 回答