我正在尝试使用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>
非常感谢任何帮助!
答案 0 :(得分:0)
可能与RemoteViews
构造函数有关,期望XML文件的标识符,并且您正在传递元素的标识符。
使用布局ID,也许它可以让你更深入地了解RemoteView的方法,比如public View apply(Context context, ViewGroup parent)
,其中视图被夸大了。
你真的必须以编程方式进行吗? XML似乎是要走的路,它至少是文档化的,我没有看到代码中的共鸣,为什么你需要以编程方式进行。