我正在尝试使用小部件来显示通过意图接收的文本。
当我构建应用程序并在我的Widget类中使用断点来跟踪代码时,类会毫无问题地接收字符串。在调试时我将小部件添加到主屏幕并使用断点我再次遵循代码,但这次它将字符串显示为null。
构建并运行应用 - > String =“Hello”,Add Widget - > 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
但是当我将小部件放在主屏幕上时它会崩溃。
答案 0 :(得分:0)
为什么不直接获取字符串?
intent.getStringExtra("artist");