我正在尝试修改某些操作的数据,但它会抛出NPE。
if("Button1_OnClickTag".equals(mIntent.getAction())){
Collections.sort(mCollections, Anlik.COMPARE_BY_BIRIM);
Log.d("****CollectionSize****", "initDataFromService_if: "+mCollections.size());
notify();
}
我在RemoteViesFactory的数据初始化中使用了这个部分。我不知道这是否是正确的方法。如果没有,你能建议其他任何方式吗? 感谢。
修改 代码流通过以下
来实现if(Button1_OnClick.equals(intent.getAction())){
sharedPreferences = context.getSharedPreferences("PREFERENCES", context.getApplicationContext().MODE_PRIVATE);
widgetIdupdate=sharedPreferences.getInt("mWidgetId", 66);
Toast.makeText(context, "Category1", Toast.LENGTH_SHORT).show();
//WidgetDataProvider.modifData();
Log.d("****ONCLICK WIDGETID", "onReceive: " + widgetIdupdate);
RemoteViews mView = new RemoteViews(context.getPackageName(),R.layout.mudo_life_widget);
mView.setRemoteAdapter(widgetIdupdate, R.id.list,intent);
onUpdate(context);
}
在我的AppWidgetProvider中,
public class WidgetService extends RemoteViewsService {
@Override
public RemoteViewsFactory onGetViewFactory(Intent intent) {
WidgetDataProvider dataProvider = new WidgetDataProvider(
getApplicationContext(), intent);
return dataProvider;
}
}
在WidgetService中以及何时创建WidgetDataProvider
public WidgetDataProvider(Context context, Intent intent) {mContext = context; mIntent=intent;}
所以我认为它已经分配给Button1_OnClick
。
我错了吗?