2014-03-12 41 views
1

我试图让一个小部件显示它通过意图接收到的文本。Android Widget Bundle getString显示null

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

编译和运行应用程序 - >字符串= “你好”,添加小工具 - >字符串=空

我的动态类:

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

请包括logcat堆栈跟踪。 – PearsonArtPhoto

回答

0

为什么你不直接得到字符串?

intent.getStringExtra("artist");