【问题标题】:Input in appwidget在 appwidget 中输入
【发布时间】:2023-03-17 15:50:01
【问题描述】:

appwidget 获取意见的最佳方式是什么。我知道我可以使用RemoteViews 中的setOnClickPendingIntent 方法,但我不想那样做!有没有其他方法? 附言当我尝试在 Xml (<ImageView android:onClick="myHandler" ... />) 中注册 onClick 侦听器时,它会引发异常。

W/AppWidgetHostView(  178): android.view.InflateException: Binary XML file line #11: Error inflating class android.widget.Button
W/AppWidgetHostView(  178):     at android.view.LayoutInflater.createView(LayoutInflater.java:513)
W/AppWidgetHostView(  178):     at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
W/AppWidgetHostView(  178):     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:563)
W/AppWidgetHostView(  178):     at android.view.LayoutInflater.rInflate(LayoutInflater.java:618)
W/AppWidgetHostView(  178):     at android.view.LayoutInflater.rInflate(LayoutInflater.java:621)
W/AppWidgetHostView(  178):     at android.view.LayoutInflater.inflate(LayoutInflater.java:407)
W/AppWidgetHostView(  178):     at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
W/AppWidgetHostView(  178):     at android.widget.RemoteViews.apply(RemoteViews.java:900)
W/AppWidgetHostView(  178):     at android.appwidget.AppWidgetHostView.updateAppWidget(AppWidgetHostView.java:208)
W/AppWidgetHostView(  178):     at com.htc.launcher.LauncherAppWidgetHostView.updateAppWidget(LauncherAppWidgetHostView.java:116)
W/AppWidgetHostView(  178):     at android.appwidget.AppWidgetHost.updateAppWidgetView(AppWidgetHost.java:243)
W/AppWidgetHostView(  178):     at android.appwidget.AppWidgetHost$UpdateHandler.handleMessage(AppWidgetHost.java:72)
W/AppWidgetHostView(  178):     at android.os.Handler.dispatchMessage(Handler.java:99)
W/AppWidgetHostView(  178):     at android.os.Looper.loop(Looper.java:123)
W/AppWidgetHostView(  178):     at android.app.ActivityThread.main(ActivityThread.java:4595)
W/AppWidgetHostView(  178):     at java.lang.reflect.Method.invokeNative(Native Method)
W/AppWidgetHostView(  178):     at java.lang.reflect.Method.invoke(Method.java:521)
W/AppWidgetHostView(  178):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
W/AppWidgetHostView(  178):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
W/AppWidgetHostView(  178):     at dalvik.system.NativeStart.main(Native Method)
W/AppWidgetHostView(  178): Caused by: java.lang.reflect.InvocationTargetException
W/AppWidgetHostView(  178):     at android.widget.Button.<init>(Button.java:65)
W/AppWidgetHostView(  178):     at java.lang.reflect.Constructor.constructNative(Native Method)
W/AppWidgetHostView(  178):     at java.lang.reflect.Constructor.newInstance(Constructor.java:446)
W/AppWidgetHostView(  178):     at android.view.LayoutInflater.createView(LayoutInflater.java:500)
W/AppWidgetHostView(  178):     ... 19 more
W/AppWidgetHostView(  178): Caused by: java.lang.IllegalStateException: The android:onClick attribute cannot be used within a restricted context
W/AppWidgetHostView(  178):     at android.view.View.<init>(View.java:2005)
W/AppWidgetHostView(  178):     at android.widget.TextView.<init>(TextView.java:335)
W/AppWidgetHostView(  178):     at android.widget.Button.<init>(Button.java:69)
W/AppWidgetHostView(  178):     ... 23 more

【问题讨论】:

    标签: android input android-intent onclick android-appwidget


    【解决方案1】:

    我知道我可以使用 RemoteViews 中的 setOnClickPendingIntent 方法,但我不想那样做!

    您别无选择。它是您通过 API 级别 10(姜饼)的唯一输入选项。

    对于 API 级别 11 及更高级别(Honeycomb 等),您可以创建包含 ListViewGridViewStackView 的应用小部件。对于这些,您可以提供另一个PendingIntent,当单击列表(或网格或堆栈)中的项目时将调用该PendingIntent。这将类似于setOnClickPendingIntent()

    【讨论】:

    • 感谢您的快速回复!我正在使用 PendingIntents 更新我的小部件(大约 1-5 FPS),并且它正在停止(有时)我的输入 Intent。
    • @hotlaf:“我正在更新我的小部件(大约 1-5 FPS)”- 应用小部件设计为最多每几分钟更新一次。 “with PendingIntents”——这种说法毫无意义。 “它正在停止(有时)我的输入意图”——这句话也没有意义。
    • @CommonsWare “受限上下文”是指应用小部件和通知之类的东西吗?
    • @FlorianWalther:我不确定,抱歉。
    • 关于受限上下文的信息几乎为零。我能够故意收到此错误消息的唯一方法是将onClick 添加到通知布局中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多