我试图在 appwidget 中包含 editText。后来我发现不可能包含 edittext
但如果我检查 Google 搜索 appwiget,我可以看到他们正在使用类似于 edittext 的视图。如何为小部件创建类似 edittext 的视图
我正在构建一个具有多个视图并翻转视图的 appWidget。基本上,它正在工作。但我不知道如何以编程方式停止 RemoteViews 中的视图翻转。
这是用于翻转的 xml 布局
<ViewFlipper android:id="@+id/vf_slot_0"
android:layout_width="fill_parent" android:layout_height="75dp"
android:autoStart="true"
android:flipInterval="10000">
Run Code Online (Sandbox Code Playgroud)
这是代码
RemoteViews mViews = new RemoteViews(context.getPackageName(), R.id.flipping_view);
mViews.setBoolean(R.id.vf_slot_0, "setAutoStart", false);
mViews.setInt(R.id.vf_slot_0, "setFlipInterval", 1000);
Run Code Online (Sandbox Code Playgroud)
'setFlipInterval' 正在工作。我可以使用此代码以编程方式更改翻转间隔。但是“setAutoStart”不是。并收到此错误..
08-19 01:45:38.821: WARN/AppWidgetHostView(2889): android.widget.RemoteViews$ActionException: view: android.widget.ViewFlipper can't use method with RemoteViews: setAutoStart(boolean)
Run Code Online (Sandbox Code Playgroud)
想知道为什么我不能使用“setAutoStart”而我可以使用“setFlipInterval”。有什么方法可以以编程方式开始或停止在我的 appWidget 中翻转图像吗?
在我的 appWidgetProvider 中,每次我需要更新 appWidget 时,我都必须创建新的 RemoteViews 对象并为其分配属性:
RemoteViews views = new RemoteViews(context.getPackageName(),layout);
views.setOnClickPendingIntent(R.id.widgetLayout, pendingIntent);
view.setFloat(R.id.nick, "setTextSize", wParameters.getFontSize());
view.setTextViewText(R.id.nick,wParameters.getNick());
.........etc
appWidgetManager.updateAppWidget(appWidgetId, views);
Run Code Online (Sandbox Code Playgroud)
但实际上,我只需要改变一件事,那就是 TextView Text。
我可以以某种方式存储 RemoteViews 以便在下次更新时重用它,并且只应用
view.setTextViewText(R.id.nick,wParameters.getNick());
appWidgetManager.updateAppWidget(appWidgetId, views);
Run Code Online (Sandbox Code Playgroud)
再次?
或者以某种方式获取以前使用的 RemoteViews 对象?
我想实现这一点,因为在我的 appWidget 中再次设置新的 RemoteViews 对象属性的过程非常昂贵。
让我们假设我的小部件由一个 TextView 和一个 ImageView 组成。ImageView 的图像是在小部件的 configureActivity 中选择的(对于 appWidget 的每个实例都是唯一的),但是图像处理很昂贵。每次更新都需要更改 TextView 文本。我想保留 ImageView 图像,只更改 TextView 的文本。是否可以在不更新 imageView 的情况下更新 TextView?
很高兴得到任何帮助和想法!感谢先进,加尔。
检测 AppWidget 上的 OnTouch。如果可以的话?你好!我正在尝试为 Android 2.1 创建我的第一个 AppWidget,其中客户端可能有机会在我的自定义视图上选择一个项目。我将为其创建一个自定义视图和一个滑块,客户可以通过将滑块拉到自定义视图上来进行选择。为此,我想检测AppWidget的onTouch(以确定X、Y坐标),有办法做到这一点吗?
我看到了可以在 AppWidget 中使用的有效小部件列表:
然而它们不符合我的需要。我用谷歌搜索过这个,但没有找到任何可以帮助我的东西。有没有办法在 AppWidget 中检测 OnTouch?也许这需要我拥有更新的 API 版本。
我正在尝试使用网络数据开发一个AppWidget。到目前为止,我有一个应用程序(已启动并正在运行),其中包含自定义AsyncTaskLoader(获取 URL 并提供解析数据)到我的片段内的加载器。没有缓存或数据库来保存该数据。如果可能的话,我的最佳实践是使用一些现有的网络+解析类功能。
通过搜索许多示例和教程,我要么找到了简单的离线小部件,要么找到了其他带有内容提供者和观察者的小部件。他们都不使用网络连接。
我可以有一个从在线 json 而不是内容解析器/提供者获取数据的小部件吗?任何这样的例子或指南都会非常有帮助!
我的应用程序支持2.0及以上版本。根据我的研究,我发现我必须实现 2 个 Android 3+ 及更低版本的小部件。有没有其他更简单的方法来避免双重编码?
提前致谢!
我正在处理小部件,当设备从纵向旋转到横向和横向旋转到纵向时,我需要以编程方式控制小部件的宽度和高度。为此,当配置更改时,我调用以下代码以编程方式更新小部件宽度:
for (int id : appWidgetIds){
Bundle newOptions = appWidgetManager.getAppWidgetOptions(id);
int minWidth = newOptions.getInt(AppWidgetManager.OPTION_APPWIDGET_MIN_WIDTH, 0);
newOptions.putInt(AppWidgetManager.OPTION_APPWIDGET_MIN_WIDTH, minWidth - 100);
appWidgetManager.updateAppWidgetOptions(id, newOptions);
}
Run Code Online (Sandbox Code Playgroud)
在此之后,我使用新值调用onAppWidgetOptionsChanged()但小部件不会调整大小。
但是我也在调用onUpdate()。
minSdkVersion 是 16。
我搜索了很多但找不到与此问题相关的内容,感谢您的宝贵时间。
谢谢
有什么方法可以ProgressBar在运行时更改应用程序小部件中驻留的颜色?
这是ProgressBar进度值的更新方式:
RemoteViews views = new RemoteViews( context.getPackageName(), R.layout.widget );
views.setProgressBar( R.id.progressbar, 100, 10, false );
...
appWidgetManager.updateAppWidget( widgetID, views );
Run Code Online (Sandbox Code Playgroud)
不幸的是,该类RemoteViews不允许我们设置颜色过滤器,甚至不允许为ProgressBar.
任何想法,将不胜感激。
在应用程序小部件的上下文中,Google 对用户“积极使用”应用程序的定义是什么?如果一个应用程序很长一段时间没有打开,但主屏幕上有一个小部件,有人知道Android是否会将该应用程序置于待机模式吗?从文档来看,应用程序小部件似乎适合以下描述:“应用程序当前有一个位于前台的进程(作为活动或前台服务,或者由另一个活动或前台服务使用)。” 但我不太确定。
想法?
https://developer.android.com/preview/features/power-mgmt.html
我正在使用以下代码在我的一个ImageView上设置ColorFilter: -
views.setInt(myView, "setColorFilter", myColour);
Run Code Online (Sandbox Code Playgroud)
有没有办法删除此过滤器以将颜色恢复正常?我尝试过使用: -
views.setInt(iconResource, "setColorFilter", -1);
Run Code Online (Sandbox Code Playgroud)
任何想法我可以做什么来重置这个?谢谢!
我有一个配置活动,一个大型小部件提供程序和一个小小部件提供程序.从配置活动中,我在共享首选项中保存了一些值.从大型和小型应用小部件提供商,我得到这些共享的偏好.我无法为应用程序小部件提供唯一的ID,并且我希望每次从配置活动转移到应用程序小部件提供程序时都有不同的共享首选项.我怎样才能做到这一点.