2013-03-13 1 views
2

나는 안드로이드 애플 리케이션 위젯 개발에 초보입니다. 내 애플리케이션 용 앱 위젯을 만들고 싶습니다.위젯 개발에서 내 안드로이드 애플 리케이션 위젯 목록보기를 업데이 트하는 방법

내 앱 위젯 개발에이 Github 프로젝트를 사용했습니다.

https://github.com/commonsguy/cw-advandroid/tree/master/AppWidget/LoremWidget

요구 사항 :

1 내 목록보기의 데이터를 동적 수단 데이터입니다 내 응용 프로그램의 데이터와 동기화합니다. 응용 프로그램 데이터가 변경되면 자동 위젯 데이터가 업데이트/삭제됩니다.

나는 여러 날을 검색 중이지만 어떤 해결책도 찾지 못했습니다.

아무도 해결책이있는 경우 도와주세요.

답변

0

@Harshid이 코드는 당신을 도울 수 있습니다. 그것을 확인하고 사용해보십시오.

package com.automatic.widget; 

import android.app.PendingIntent; 
import android.appwidget.AppWidgetManager; 
import android.appwidget.AppWidgetProvider; 
import android.content.ComponentName; 
import android.content.Context; 
import android.content.Intent; 
import android.widget.RemoteViews; 

public class Widget extends AppWidgetProvider { 

private static final String SYNC_CLICKED = "automaticWidgetSyncButtonClick"; 

@Override 
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { 
    RemoteViews remoteViews; 
    ComponentName watchWidget; 

    remoteViews = new RemoteViews(context.getPackageName(), R.layout.widget_layout); 
    watchWidget = new ComponentName(context, Widget.class); 

    remoteViews.setOnClickPendingIntent(R.id.sync_button, getPendingSelfIntent(context, SYNC_CLICKED)); 
    appWidgetManager.updateAppWidget(watchWidget, remoteViews); 
} 

@Override 
public void onReceive(Context context, Intent intent) { 
    // TODO Auto-generated method stub 
    super.onReceive(context, intent); 

    if (SYNC_CLICKED.equals(intent.getAction())) { 

     AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context); 

     RemoteViews remoteViews; 
     ComponentName watchWidget; 

     remoteViews = new RemoteViews(context.getPackageName(), R.layout.widget_layout); 
     watchWidget = new ComponentName(context, Widget.class); 

     remoteViews.setTextViewText(R.id.sync_button, "TESTING"); 

     appWidgetManager.updateAppWidget(watchWidget, remoteViews); 

    } 
} 

protected PendingIntent getPendingSelfIntent(Context context, String action) { 
    Intent intent = new Intent(context, getClass()); 
    intent.setAction(action); 
    return PendingIntent.getBroadcast(context, 0, intent, 0); 
} 
} 
관련 문제