Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.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
Android 小部件单击不工作?_Android_Android Widget_Click_Commonsware - Fatal编程技术网

Android 小部件单击不工作?

Android 小部件单击不工作?,android,android-widget,click,commonsware,Android,Android Widget,Click,Commonsware,我正在尝试基于公共软件代码“LoremWidget”实现小部件,请参见Github 问题是单击不起作用 在WidgetUpdate上,与相同 在清单中,类似于 WidgetFactory getView方法作为 问题: 1.为什么小部件没有更新,实际上没有生成日志与我的代码相关的唯一日志是 05-15 23:24:27.648:I/ActivityManager(161):从pid-1开始{flg=0x10000000 cmp=com.demo.widget/.WidgetService bn

我正在尝试基于公共软件代码“LoremWidget”实现小部件,请参见Github

问题是单击不起作用

在WidgetUpdate上,与相同

在清单中,类似于

WidgetFactory getView方法作为

问题:

1.为什么小部件没有更新,实际上没有生成日志与我的代码相关的唯一日志是

05-15 23:24:27.648:I/ActivityManager(161):从pid-1开始{flg=0x10000000 cmp=com.demo.widget/.WidgetService bnds=[509299][547337]}


<强> 2。< /强>这是实现简单点击小部件的正确方法,还有其他方法吗?这个小工厂是唯一的方式吗?

< P>你可以考虑阅读,特别是覆盖这个示例的章节,就像你在那里找到答案一样。

为什么widget没有更新

因为您正在创建一个活动
pendingent
,具有指向服务的
意图
,我看到:

 Intent configIntent = new Intent(context, WidgetService.class);
 PendingIntent configPendingIntent =PendingIntent.getActivity(context, 0, configIntent, 0);
 remoteView.setPendingIntentTemplate(R.id.imgNext, configPendingIntent);
这不匹配

这是实现一个简单的点击窗口小部件的正确方法吗?还有其他方法吗?widgetfactory是唯一的方法吗


这就是你在应用程序小部件中使用的
AdapterView
中处理点击的方式。

当你不做修改就使用它时,LoremWidget示例是否有效?@commonware是的,它确实有效,当点击列表项时,它显示单词列表并显示祝酒词谢谢,我理解了关于适配器视图的部分,更正了它。其次,我不想执行/加载另一个活动来吐司消息,我想在单击时更新小部件本身??这些方法够了吗?请如何更新代码?@AkhilJain:欢迎您随时使用
AppWidgetManager
上的
updateAppWidget()
更新应用程序小部件。小部件还有一些其他代码,已经可以每隔5/10秒刷新一次视图,根据设置的计时器,视图会更新(使用
updateAppWidget()
),但我希望它在单击完成时更新,很抱歉,我是小部件开发的新手,小部件在
getView
方法中更新时不做任何事情。在这里,您实际上调用另一个活动来显示另一个活动,使用
pendingEvent.getActivity()
,它会启动另一个活动,而我没有want@AkhilJain:“小部件有一些其他代码,已经可以每5/10秒刷新一次视图”--这对用户的电池、RAM和CPU来说不是个好主意。“我不想要这些”--然后删除该代码并替换为您想要的代码。这样,我至少可以更新小部件,但我不知道其他更新小部件UI的方法。问题仍然是,更新小部件UI
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.demo.widget"
    android:versionCode="1"
    android:versionName="1.0" >
<uses-sdk
    android:minSdkVersion="11"
    android:targetSdkVersion="17" />

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
     <activity
         android:name=".WidgetConfig"
         android:label="@string/app_name" >
         <intent-filter>
              <action
                android:name="android.appwidget.action.APPWIDGET_CONFIGURE" />
         </intent-filter>
     </activity>
    <receiver
        android:name="BasicWidgetProvider">
        <intent-filter>
            <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
        </intent-filter>
        <meta-data
            android:name="android.appwidget.provider"
            android:resource="@xml/widget_info" />
    </receiver>
      <service android:name="WidgetService"
               android:permission="android.permission.BIND_REMOTEVIEWS" />
</application>
</manifest>
public class WidgetService extends RemoteViewsService 
{
    private static final String TAG=WidgetService.class.getName();
    @Override
    public RemoteViewsFactory onGetViewFactory(Intent intent) 
    {
        Log.d(TAG, "inside remoteview");
        return(new WidgetFactory(this.getApplicationContext(),
                                     intent));
    }
}
public RemoteViews getViewAt(int arg0) 
    {
        Log.d(TAG, "inside the getview at");
        RemoteViews row=new RemoteViews(ctxt.getPackageName(), R.layout.widget);
            row.setViewVisibility(R.id.imgNext, View.INVISIBLE);
        Intent i=new Intent();
        Bundle extras=new Bundle();
        return(row);
    }
 Intent configIntent = new Intent(context, WidgetService.class);
 PendingIntent configPendingIntent =PendingIntent.getActivity(context, 0, configIntent, 0);
 remoteView.setPendingIntentTemplate(R.id.imgNext, configPendingIntent);