使用java代码创建自定义状态栏通知布局

时间:2012-07-06 17:17:42

标签: android android-layout android-notifications

我正在尝试使用java而不是xml创建自定义状态栏通知布局。我创建了一个linearlayout,设置了所需的参数,在通知remoteview中设置它,但它给了我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>

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

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

使用布局ID,也许它可以让你更深入地了解RemoteView的方法,比如public View apply(Context context, ViewGroup parent),其中视图被夸大了。

你真的必须以编程方式进行吗? XML似乎是要走的路,它至少是文档化的,我没有看到代码中的共鸣,为什么你需要以编程方式进行。