2012-05-23 51 views
0

我想在小部件中添加一個按鈕,以便它可以通過按按鈕運行一個功能(更改APN並在小部件中顯示更改的消息)。事實上,這個功能在我的測試活動中起作用。有沒有人有想法如何做到這一點?謝謝!通過按下小部件中的按鈕來運行功能

問候, 陳國輝

回答

1

嗯,有幾個方法。

例如,你可以像這裏面的AppWidgetProvider註冊:

public static String ACTION_WIDGET_RECEIVER = "Action!"; 

@Override 
    public void onUpdate(Context context, AppWidgetManager appWidgetManager, 
      int[] appWidgetIds) { 
     RemoteViews remoteViews = new RemoteViews(context.getPackageName(), 
       R.layout.widget_layout); 

     Intent active = new Intent(context, ThisClass.class); 
     active.setAction(ACTION_WIDGET_RECEIVER); 

     PendingIntent actionPendingIntent = PendingIntent.getBroadcast(context, 
       0, active, 0); 

     remoteViews.setOnClickPendingIntent(R.id.button, actionPendingIntent); 


     appWidgetManager.updateAppWidget(appWidgetIds, remoteViews); 
    } 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     final String action = intent.getAction(); 
     if (AppWidgetManager.ACTION_APPWIDGET_DELETED.equals(action)) { 
      final int appWidgetId = intent.getExtras().getInt(
        AppWidgetManager.EXTRA_APPWIDGET_ID, 
        AppWidgetManager.INVALID_APPWIDGET_ID); 
      if (appWidgetId != AppWidgetManager.INVALID_APPWIDGET_ID) { 
       this.onDeleted(context, new int[] { appWidgetId }); 
      } 
     } else { 
      if (intent.getAction().equals(ACTION_WIDGET_RECEIVER)) { 
       doYourStuff(); 
      super.onReceive(context, intent); 
     } 
    } 
+0

另外,如何更新Widget內容(即改變插件的文本)中doYourStuff()?謝謝 – user1411475