2012-09-10 12 views
0

當我單擊我的widget時,我想要到另一個應用程序。它似乎沒有工作。請告訴我我哪裏錯了。 到目前爲止,我的代碼如下。如何在單擊某個小部件時獲得另一個應用程序

public class MyWidgetProvider extends AppWidgetProvider { 

    public String team1name; 
    public String team2name; 
    public String team1score; 
    public String team2score; 
      @Override 
      public void onUpdate(Context context, AppWidgetManager appWidgetManager,int[] appWidgetIds) { 
       super.onUpdate(context, appWidgetManager, appWidgetIds); 
       Log.i(MyWidgetProvider.class.toString(), "Onupdate called for " + this); 

        RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.widget_layout); 

        Intent in = new Intent(Intent.ACTION_MAIN); 
        PackageManager packageManager = context.getPackageManager(); 
        in = packageManager.getLaunchIntentForPackage("com.playup.android.adapters"); 
        in.addCategory(Intent.CATEGORY_LAUNCHER); 
        PendingIntent pendingIntent2 = PendingIntent.getActivity(context,0 /* no requestCode */, in, 0 /* no flags */); 
        remoteViews.setOnClickPendingIntent(R.id.layout, pendingIntent2); 

        ComponentName thisWidget = new ComponentName(context, MyWidgetProvider.class); 
        AppWidgetManager manager = AppWidgetManager.getInstance(context); 
        manager.updateAppWidget(thisWidget, remoteViews); 
      } 
      public void onReceive(Context context, Intent intent){ 
       Bundle extras = intent.getExtras(); 
       if (extras == null) { 
        return; 
       } 
       team1name = extras.getString("team1name"); 
       team2name = extras.getString("team2name"); 
       team1score = extras.getString("team1score"); 
       team2score = extras.getString("team2score");  


        RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.widget_layout); 
         remoteViews.setTextViewText(R.id.team1name, team1name); 
         remoteViews.setTextViewText(R.id.team2name, team2name); 
         remoteViews.setTextViewText(R.id.team1score, team1score); 
         remoteViews.setTextViewText(R.id.team2score, team2score); 

         ComponentName cn = new ComponentName(context, MyWidgetProvider.class); 
         AppWidgetManager.getInstance(context).updateAppWidget(cn, remoteViews); 
      } 
} 
+0

@iturki我編輯它。它仍然不起作用。 – Feona

+0

您是否將佈局或組件的標識設置爲佈局,您在其中添加了單擊監聽器。因爲我已經執行了你的代碼,它工作正常,除非該程序包名爲app沒有安裝小部件崩潰,但我認爲這不會發生在你的情況。 –

+0

小部件不會崩潰,軟件包已安裝 – Feona

回答

0

我簡單地加入從的onUpdate一些代碼()方法的onReceive()方法和它的工作。 這是代碼。

 Intent in = new Intent(Intent.ACTION_MAIN); 
     PackageManager packageManager = context.getPackageManager(); 
     in = packageManager.getLaunchIntentForPackage("com.playup.android.adapters"); 
     in.addCategory(Intent.CATEGORY_LAUNCHER); 
     PendingIntent pendingIntent2 = PendingIntent.getActivity(context,0 /* no requestCode */, in, 0 /* no flags */); 
     remoteViews.setOnClickPendingIntent(R.id.layout, pendingIntent2); 
相關問題