Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在代码中创建自定义扩展视图_Java_Android_Android Layout_Notifications - Fatal编程技术网

Java 在代码中创建自定义扩展视图

Java 在代码中创建自定义扩展视图,java,android,android-layout,notifications,Java,Android,Android Layout,Notifications,我想自定义通知区域,在右侧添加一个图标和几个按钮。 我在这里阅读了教程: 问题是我需要在一个库中包含这段代码,这是一个我想要分发以改进通知的SDK。(见附件) 是否可以用代码编写所有UI,而不需要xml来描述远程视图?这是因为资源不能包含在SDK中,所以我需要要求SDK的用户向他们的资源添加一个xml,并按名称引用所有资源。。。这是我想要避免的。 我已经完全用Java代码编写了SDK用户界面的其他部分,但是对于Remove视图,我也遇到了同样的问题 远程视图通常是这样创建的: RemoteVie

我想自定义通知区域,在右侧添加一个图标和几个按钮。 我在这里阅读了教程:

问题是我需要在一个库中包含这段代码,这是一个我想要分发以改进通知的SDK。(见附件)

是否可以用代码编写所有UI,而不需要xml来描述远程视图?这是因为资源不能包含在SDK中,所以我需要要求SDK的用户向他们的资源添加一个xml,并按名称引用所有资源。。。这是我想要避免的。 我已经完全用Java代码编写了SDK用户界面的其他部分,但是对于Remove视图,我也遇到了同样的问题

远程视图通常是这样创建的:

RemoteViews contentView = new RemoteViews(getPackageName(), R.layout.custom_notification_layout);
我可以从我用Java代码创建的布局创建RemoteView吗?
还有其他解决方案吗?

我认为您可以用自己的包来实现这一点,但看看代码,包只存储主构造函数使用的包名和布局(资源)id

public void writeToParcel(Parcel dest, int flags) {
    dest.writeString(mPackage);
    dest.writeInt(mLayoutId);
    int count;
    if (mActions != null) {
        count = mActions.size();
    } else {
        count = 0;
    }
    dest.writeInt(count);
    for (int i=0; i<count; i++) {
        Action a = mActions.get(i);
        a.writeToParcel(dest, 0);
    }
}
public void writeToParcel(地块目的地,整数标志){
目的写入(mPackage);
目的地写入(mLayoutId);
整数计数;
if(mActions!=null){
count=mActions.size();
}否则{
计数=0;
}
目的写入(计数);
对于(int i=0;i