2013-10-17 35 views
0

我是新來創建一個小部件。我創建了一個小部件,它以網格視圖顯示所有安裝的應用程序。我通過使用remoteviewfactory完成了所有工作,但問題是我無法從窗口小部件啓動相應的應用程序。 我不知道有什麼問題。我可以通過吐司感知點擊,並且我也得到了包名,但我無法啓動應用程序。如何從主屏幕小部件中的網格視圖開始一個新的活動?

ApplicationInfo info = list.get(position); 
      Intent mIntent = context.getPackageManager() 
        .getLaunchIntentForPackage(info.packageName); 
      Toast.makeText(context, "Hello " + info.packageName, 
        Toast.LENGTH_SHORT).show(); 
      if (mIntent != null) { 
       try { 
        context.startActivity(mIntent); 
       } catch (ActivityNotFoundException err) { 
        Toast.makeText(context, "app not found", 
          Toast.LENGTH_SHORT).show(); 
       } 
      } 

請告訴我什麼是問題。

+0

你有你的小部件設置onClickpendingIntent? –

+0

雅所有的東西都已經設好了。還有Toast也在工作。 – Sridhar

回答

0

好更新您的的onUpdate方法類似這樣的小部件

public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { 
     final int N = appWidgetIds.length; 

     // Perform this loop procedure for each App Widget that belongs to this provider 
     for (int i=0; i<N; i++) { 
      int appWidgetId = appWidgetIds[i]; 

      // Create an Intent to launch ExampleActivity 
      Intent intent = new Intent(context, ExampleActivity.class); 
      PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); 

      // Get the layout for the App Widget and attach an on-click listener 
      // to the button 
      RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.appwidget_provider_layout); 
      views.setOnClickPendingIntent(R.id.button, pendingIntent); 

      // Tell the AppWidgetManager to perform an update on the current app widget 
      appWidgetManager.updateAppWidget(appWidgetId, views); 
     } 
    } 
} 

更多信息,可以發現here

+0

這不是我期待的答案。我創造了所有的東西,即使setonclickpendingintent也在工作。但事情是,我想要啓動另一個應用程序,只要我點擊網格查看項目 – Sridhar

+0

發佈您的代碼。 –

相關問題