加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-15 00:52:59 所属栏目:Java 来源:网络整理
导读:我为 Android应用程序创建小部件(当然是Java).我有从布局创建的经典RemoteViews(使用布局ID) RemoteViews rv = new RemoteViews(context.getPackageName(),R.layout.view); 我需要编辑或更改视图(通过id识别).在经典View中使用findViewById函数很容易. View
我为 Android应用程序创建小部件(当然是Java).我有从布局创建的经典RemoteViews(使用布局ID)
RemoteViews rv = new RemoteViews(context.getPackageName(),R.layout.view);

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

View v = ... //inflate layout R.layout.view
View my = v.findViewById(R.id.myViewId);
processView(my); //filling view

但是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);

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

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

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

解决方法

试试这种方式:
RemoteViews remoteViews = new RemoteViews(context.getPackageName(),R.layout.widget);

        remoteViews.setTextViewText(R.id.widget_textview,text); <---- here you can set text

        // Tell the widget manager
        appWidgetManager.updateAppWidget(appWidgetId,remoteViews);

这是一个了解小部件行为的有用帖子:

http://www.vogella.com/articles/AndroidWidgets/article.html

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读