Intent.getAction()在RemoteViewsFactory [AppWidget]中抛出NullPointerException

时间:2016-04-13 10:26:09

标签: java android android-intent android-appwidget remoteview

我正在尝试修改某些操作的数据,但它会抛出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。 我错了吗?

0 个答案:

没有答案