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

问题描述:

我正尝试用java代替xml创建自定义状态栏通知布局。我创建了一个线性布局,设置了所需的参数,将其设置在通知远程视图中,但它给了我FC。 (“坏通知贴出”)使用java代码创建自定义状态栏通知布局

这里是我的测试代码:

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> 

任何帮助将不胜感激!

+0

是不是通知标识符应该是int? – matt5784 2012-07-06 17:26:43

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

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

你真的必须以编程的方式来做吗? XML似乎是要走的路,至少是有记录的,而且我没有看到代码中的共鸣,为什么你需要以编程方式进行。

+0

感谢您的回复!我想用java而不是xml,因为用户可以更改通知中的元素(按钮或图像浏览,textview或进度条等),我不想为每个设置都有一个xml。有没有一种方法可以用一个XML文件来完成这个任务? – kevdliu 2012-07-06 20:57:47

+0

好吧,如果没有更深入的知识或“高级黑客”,我只需将xml文件中的类似视图分组,并管理每个视图中的小差异/细节,将组件的可见性设置为“可见”或“消失”。 – Ixx 2012-07-06 21:23:34

+0

对于更大的差异,我会使用不同的XML文件。 – Ixx 2012-07-06 21:29:57