小编hon*_*989的帖子

如何编辑/更改从RemoteView中的布局查看或从View创建RemoteView?

我为Android应用程序创建小部件(当然是Java).我有从布局创建的经典RemoteViews(使用布局ID)

RemoteViews rv = new RemoteViews(context.getPackageName(), R.layout.view);
Run Code Online (Sandbox Code Playgroud)

我需要编辑或更改视图(通过id识别).在经典View中使用findViewById函数很容易.

View v = ... //inflate layout R.layout.view
View my = v.findViewById(R.id.myViewId);
processView(my); //filling view
Run Code Online (Sandbox Code Playgroud)

但是RemoteViews不支持它.可以使用apply()获取视图,但是在processView和reapply()之后我看不到视图中的更改.

View v = rv.apply(context, null);
View my = v.findViewById(R.id.myViewId);
processView(my); //this work's fine
rv.reapply(context,my);
Run Code Online (Sandbox Code Playgroud)

其次,更糟糕的选择是获取我所需的视图表单RemoteViews,处理它,删除旧视图并使用addView()添加已处理的新视图.

RemoteViews rv = ...
View my = ... //apply, find and process
//remove old view
RemoteViews rvMy = ... //create RemoteViews from View
rv.addView(rvMy)
Run Code Online (Sandbox Code Playgroud)

但我不知道如何从View创建RemoteViews(有可能吗?).任何想法如何解决这个问题?

java android widget

8
推荐指数
2
解决办法
1万
查看次数

标签 统计

android ×1

java ×1

widget ×1