从widget(android)调用mainactivity时强制关闭

从widget(android)调用mainactivity时强制关闭,android,widget,Android,Widget,我正在创建一个简单的小部件,通过这个小部件我想打开我的mainactivity Iam从我的widget类发送一个唯一的密钥,以检查我的mainactivity是否通过widget调用 但是,只要我点击我的小部件,我的主要活动就会被强制关闭 这是我的小部件类的代码 @Override public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] widgets) { // TO

我正在创建一个简单的小部件,通过这个小部件我想打开我的mainactivity

Iam从我的widget类发送一个唯一的密钥,以检查我的mainactivity是否通过widget调用

但是,只要我点击我的小部件,我的主要活动就会被强制关闭

这是我的小部件类的代码

@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
        int[] widgets) {
    // TODO Auto-generated method stub
    int numofWidgets = widgets.length;
    for(int i=0;i<numofWidgets;i++){
        int widget = widgets[i];
        Intent in = new Intent(context, EmergencyButton.class);
        in.putExtra("uniquevalue", "widget");
        PendingIntent pendingintent = PendingIntent.getActivity(context, 0, in, 0);
        RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widgetlayout);
        views.setOnClickPendingIntent(R.id.button, pendingintent);
        appWidgetManager.updateAppWidget(widget, views);
    }
}
}

这是我的日志

11-04 14:57:14.361: E/AndroidRuntime(1701): FATAL EXCEPTION: main
11-04 14:57:14.361: E/AndroidRuntime(1701): java.lang.RuntimeException: Unable to start activityComponentInfo{com.appsionlabs.googlemapv2/com.appsionlabs.googlemapv2.EmergencyButton}: java.lang.NullPointerException
11-04 14:57:14.361: E/AndroidRuntime(1701):     at          android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
11-04 14:57:14.361: E/AndroidRuntime(1701):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
11-04 14:57:14.361: E/AndroidRuntime(1701):     at android.app.ActivityThread.access$1500(ActivityThread.java:117)
11-04 14:57:14.361: E/AndroidRuntime(1701):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
11-04 14:57:14.361: E/AndroidRuntime(1701):     at android.os.Handler.dispatchMessage(Handler.java:99)
11-04 14:57:14.361: E/AndroidRuntime(1701):     at android.os.Looper.loop(Looper.java:123)
11-04 14:57:14.361: E/AndroidRuntime(1701):     at android.app.ActivityThread.main(ActivityThread.java:3683)
11-04 14:57:14.361: E/AndroidRuntime(1701):     at java.lang.reflect.Method.invokeNative(Native Method)
11-04 14:57:14.361: E/AndroidRuntime(1701):     at java.lang.reflect.Method.invoke(Method.java:507)
11-04 14:57:14.361: E/AndroidRuntime(1701):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
11-04 14:57:14.361: E/AndroidRuntime(1701):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
11-04 14:57:14.361: E/AndroidRuntime(1701):     at dalvik.system.NativeStart.main(Native Method)
11-04 14:57:14.361: E/AndroidRuntime(1701): Caused by: java.lang.NullPointerException
11-04 14:57:14.361: E/AndroidRuntime(1701):     at com.appsionlabs.googlemapv2.EmergencyButton.onCreate(EmergencyButton.java:29)
11-04 14:57:14.361: E/AndroidRuntime(1701):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
11-04 14:57:14.361: E/AndroidRuntime(1701):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
你有这个

 et1.setText(widgetdata);
但是
et1
未初始化。初始化
et1

编辑:

使用下面的选项并尝试

  Bundle extras = this.getIntent().getExtras();
  if (extras != null) {
        widgetdata = extras.getString("uniquevalue");
  }
你有这个

 et1.setText(widgetdata);
但是
et1
未初始化。初始化
et1

编辑:

使用下面的选项并尝试

  Bundle extras = this.getIntent().getExtras();
  if (extras != null) {
        widgetdata = extras.getString("uniquevalue");
  }
你有这个

 et1.setText(widgetdata);
但是
et1
未初始化。初始化
et1

编辑:

使用下面的选项并尝试

  Bundle extras = this.getIntent().getExtras();
  if (extras != null) {
        widgetdata = extras.getString("uniquevalue");
  }
你有这个

 et1.setText(widgetdata);
但是
et1
未初始化。初始化
et1

编辑:

使用下面的选项并尝试

  Bundle extras = this.getIntent().getExtras();
  if (extras != null) {
        widgetdata = extras.getString("uniquevalue");
  }

et1在该位置为空


获取et1 id,然后设置文本。

et1在该位置为空


获取et1 id,然后设置文本。

et1在该位置为空


获取et1 id,然后设置文本。

et1在该位置为空


获取et1 id,然后设置文本。

尝试下面的方法,而不是
Intent intentwidget=this.getIntent()


区别在于
捆绑包

尝试下面的方法,而不是
Intent intentwidget=this.getIntent()


区别在于
捆绑包

尝试下面的方法,而不是
Intent intentwidget=this.getIntent()


区别在于
捆绑包

尝试下面的方法,而不是
Intent intentwidget=this.getIntent()




区别在于
捆绑包

widgetdata=intentwidget.getExtras().getString(“uniquevalue”);它仍然不起作用吗?不。。它仍然不工作widgetdata=intentwidget.getExtras().getString(“uniquevalue”);它仍然不起作用吗?不。。它仍然不工作widgetdata=intentwidget.getExtras().getString(“uniquevalue”);它仍然不起作用吗?不。。它仍然不工作widgetdata=intentwidget.getExtras().getString(“uniquevalue”);它仍然不起作用吗?不。。它仍然不工作1未创建强制关闭错误。。widgetdata=intentwidget.getExtras().getString(“uniquevalue”);每当我试图从小部件中获取额外信息时,这行代码都会创建强制关闭error@ShajiThornBlue这意味着您的widgetdata为Null是
EmergencyButton中的代码。java
是您的主要活动Yup EmergencyButton是我的mainactivity@ShajiThornBlue注释第29行,查看它是否仅用于测试1,而不是创建强制关闭错误。。widgetdata=intentwidget.getExtras().getString(“uniquevalue”);每当我试图从小部件中获取额外信息时,这行代码都会创建强制关闭error@ShajiThornBlue这意味着您的widgetdata为Null是
EmergencyButton中的代码。java
是您的主要活动Yup EmergencyButton是我的mainactivity@ShajiThornBlue注释第29行,查看它是否仅用于测试1,而不是创建强制关闭错误。。widgetdata=intentwidget.getExtras().getString(“uniquevalue”);每当我试图从小部件中获取额外信息时,这行代码都会创建强制关闭error@ShajiThornBlue这意味着您的widgetdata为Null是
EmergencyButton中的代码。java
是您的主要活动Yup EmergencyButton是我的mainactivity@ShajiThornBlue注释第29行,查看它是否仅用于测试1,而不是创建强制关闭错误。。widgetdata=intentwidget.getExtras().getString(“uniquevalue”);每当我试图从小部件中获取额外信息时,这行代码都会创建强制关闭error@ShajiThornBlue这意味着您的widgetdata为Null是
EmergencyButton中的代码。java
是您的主要活动Yup EmergencyButton是我的mainactivity@ShajiThornBlue注释第29行,看看它是否只适用于testThank@silivia\u aut此格式工作。。。但是我仍然想知道,我以前的代码发生了什么,他们在做同样的事情,我错在哪里了???你不能直接从意图中获取数据。您必须先将其放入捆绑包中,然后获取字符串。但不是使用他编写的此方法。@silvia_aut
getIntent()。getStringExtra(“uniquevalue”)
将work@silvia_aut即使这样也可以
getIntent().getExtras().getString(“uniquevalue”)
谢谢@silivia\u aut这种格式有效。。。但是我仍然想知道,我以前的代码发生了什么,他们在做同样的事情,我错在哪里了???你不能直接从意图中获取数据。您必须先将其放入捆绑包中,然后获取字符串。但不是使用他编写的此方法。@silvia_aut
getIntent()。getStringExtra(“uniquevalue”)
将work@silvia_aut即使这样也可以
getIntent().getExtras().getString(“uniquevalue”)
谢谢@silivia\u aut这种格式有效。。。但是我仍然想知道,我以前的代码发生了什么,他们在做同样的事情,我错在哪里了???你不能直接从意图中获取数据。您必须先将其放入捆绑包中,然后获取字符串。但不是使用他编写的此方法。@silvia_aut
getIntent()。getStringExtra(“uniquevalue”)
将work@silvia_aut即使这样也可以
getIntent().getExtras().getString(“uniquevalue”)
谢谢@silivia\u aut这种格式有效。。。但是我仍然想知道,我以前的代码发生了什么,他们在做同样的事情,我错在哪里了???你不能直接从意图中获取数据。您必须先将其放入捆绑包中,然后获取字符串。但不是使用他编写的此方法。@silvia_aut
getIntent()。getStringExtra(“uniquevalue”)
将work@silvia_aut即使这样也可以
getIntent().getExtras().getString(“uniquevalue”)