Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/223.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_Widget_Android Widget - Fatal编程技术网

Android 单击小部件时配置活动不工作

Android 单击小部件时配置活动不工作,android,widget,android-widget,Android,Widget,Android Widget,多年来,我一直试图解决这个问题,并尝试了至少10种解决堆栈溢出的方法,但都没有成功 我创建了一个小部件类,它在主屏幕上显示一些数字,每5分钟更新一次。小部件是一个按钮,当用户单击它时,配置活动被加载,以便小部件可以更新 当我第一次创建小部件时,配置活动将打开,用户可以在文本框中键入。配置完成后,小部件将更新-所有操作都按预期进行。但是,当按下按钮时,配置活动不会再次启动。奇怪的是,当我通过android studio重新运行应用程序或重启手机时,活动就可以启动了。我认为这与它没有更新按钮的原因有

多年来,我一直试图解决这个问题,并尝试了至少10种解决堆栈溢出的方法,但都没有成功

我创建了一个小部件类,它在主屏幕上显示一些数字,每5分钟更新一次。小部件是一个按钮,当用户单击它时,配置活动被加载,以便小部件可以更新

当我第一次创建小部件时,配置活动将打开,用户可以在文本框中键入。配置完成后,小部件将更新-所有操作都按预期进行。但是,当按下按钮时,配置活动不会再次启动。奇怪的是,当我通过android studio重新运行应用程序或重启手机时,活动就可以启动了。我认为这与它没有更新按钮的原因有关,但我找不到修复它的地方

我已经看到了两个类似的问题,都有我的问题,并尝试了他们的解决方案,但根本不起作用。我对android编程相当陌生,所以我可能忽略了一些东西。我已经硬编码了一些需要更改的变量,但我认为这不会影响活动的启动

这是我的WidgetProvider、配置活动类和清单

LPWidget.java

公共类LPWidget扩展了AppWidgetProvider{
私有静态最终字符串日志\u TAG=“ExampleWidget”;
静态int nowLP=LPWidgetConfigureActivity.currentLP;
静态int maxNowLP=LPWidgetConfigureActivity.maxLP;
静态布尔值notfirstTime=false;
/**
*AlarmManager用来告诉我们每秒更新一次时钟的自定义意图名称。
*/
公共静态字符串CLOCK\u WIDGET\u UPDATE=“doingitnow.simpleptracker.CLOCK\u WIDGET\u UPDATE”;
@凌驾
公共void onReceive(上下文、意图){
super.onReceive(上下文、意图);
if(CLOCK\u WIDGET\u UPDATE.equals(intent.getAction())){
Log.d(Log_标签,“时钟更新”);
//获取此小部件提供程序的小部件管理器和ID,然后调用共享
//时钟更新方法。
ComponentName thisAppWidget=新组件名(context.getPackageName(),getClass().getName());
AppWidgetManager AppWidgetManager=AppWidgetManager.getInstance(上下文);
int-id[]=appWidgetManager.getAppWidgetIds(thisAppWidget);
for(int-appWidgetID:ids){
updateAppWidget(上下文、appWidgetManager、appWidgetID);
}
}
}
私有PendingEvent createClockTickIntent(上下文){
意向意向=新意向(时钟小部件更新);
PendingEvent PendingEvent=PendingEvent.getBroadcast(上下文,0,意图,PendingEvent.FLAG_UPDATE_CURRENT);
返回悬挂式帐篷;
}
@凌驾
已禁用公共无效(上下文){
super.onDisabled(上下文);
Log.d(Log_标记,“禁用小部件提供程序。关闭计时器”);
AlarmManager AlarmManager=(AlarmManager)context.getSystemService(context.ALARM\u服务);
alarmManager.cancel(createClockTickIntent(上下文));
}
@凌驾
公共void已启用(上下文){
super.onEnabled(上下文);
Log.d(Log_标记,“小部件提供程序已启用。启动计时器以每秒更新小部件”);
AlarmManager AlarmManager=(AlarmManager)context.getSystemService(context.ALARM\u服务);
日历=Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.add(calendar.SECOND,10);
alarmManager.setRepeating(alarmManager.RTC,calendar.getTimeInMillis(),10000,createClockTickIntent(上下文));
}
@凌驾
公共void onUpdate(上下文上下文,AppWidgetManager AppWidgetManager,int[]AppWidgetId){
final int N=appWidgetIds.length;
d(Log_标记,“更新示例小部件”);
//对属于此应用程序的每个应用程序小部件执行此循环过程
//提供者
对于(int i=0;i
LPWidgetConfigureActivity.java

公共类LPWidgetConfigureActivity扩展活动{
静态int电流Lp=20;
静态int maxLP=50;
int mAppWidgetId=AppWidgetManager.INVALID\u APPWIDGET\u ID;
公共LPWidgetConfigureActivity(){
超级();
}
@凌驾
创建公共空间(捆绑冰柱){
超级冰柱;
//将结果设置为取消。这将导致小部件主机取消
//如果用户按下后退按钮,则退出小部件放置。
setResult(结果被取消);
setContentView(R.layout.lpwidget_configu