Android Widget Bundle getString 显示为空

Posted

技术标签:

【中文标题】Android Widget Bundle getString 显示为空【英文标题】:Android Widget Bundle getString showing null 【发布时间】:2014-04-16 20:28:04 【问题描述】:

我正在尝试让一个小部件显示它通过意图接收的文本。

当我构建应用程序并在我的 Widget 类中使用断点来跟踪代码时,该类会毫无问题地接收字符串。在调试时,我将小部件添加到主屏幕并使用断点再次跟踪代码,但这次它显示字符串为空。

构建并运行应用程序 -> String = "Hello",添加小部件 -> String = null

我的活动课:

Intent intent = new Intent(this, ArtistWidget.class);
        String test = "Hello";
        Bundle extras = new Bundle();
        extras.putString("artist", test);
        intent.putExtras(extras);
        sendBroadcast(intent);

在我的小部件类中:

public class ArtistWidget extends AppWidgetProvider

    private ArrayList<JSONObject> artistList = new ArrayList<JSONObject>();
    private String data;    
    RemoteViews remoteViews;


@Override
public void onReceive(Context context, Intent intent)     


    data = intent.getStringExtra("artist");


    super.onReceive(context, intent);
  



@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds )
          

        ComponentName artistWidget;

        remoteViews = new RemoteViews( context.getPackageName(), R.layout.artist_widget );
        artistWidget = new ComponentName( context, ArtistWidget.class );
        remoteViews.setTextViewText( R.id.widget_textview, "T" + data + "D");  
        appWidgetManager.updateAppWidget( artistWidget, remoteViews );   
    

在我尝试的 onReceive 函数中:

    getPrevData = intent.getExtras();
    data = getPrevData.getString("artist"); //Crashes here

但是当我将小部件放在主屏幕上时它崩溃了。

【问题讨论】:

请包含 logcat 堆栈跟踪。 【参考方案1】:

为什么不直接获取字符串呢?

intent.getStringExtra("artist");

【讨论】:

以上是关于Android Widget Bundle getString 显示为空的主要内容,如果未能解决你的问题,请参考以下文章

Android的相关事件

Android 中 SearchView

Android之checkbox

android怎么播放rtsp实时网络串流代码

android 指示器 tablatyout

android 怎么播放rtsp流