안드로이드 개발 질문/답변
(글 수 45,052)
메모용 위젯을 개발중인 초보 개발자 입니다.
위젯을 개발하던 가운데 난관에 부딪쳤는데요.
위젯 상에서 버튼을 구현해서 버튼을 누르면 버튼이 다른 위젯. layout으로 바뀔 수 있게 하려고 하는 위젯을 구현하는 가운데
위젯상에서 버튼을 누르면 Intent를 발생하여서 Receiver에서 받도록 하라고 해서 이래저래 구현해 보았는데
버튼을 눌러도 Intent 가 발생하지 않는 거 같네요.;;
Intent 를 어떻게 해야 하는지 감이 안잡히네요 ㅠ
도와주세요.
C:\myjava\and\memoo\src\com\bang\memo
public class provider extends AppWidgetProvider { private static final String TAG = "Provider"; public static final String WIDGET_UPP_ACTION = "com.memoo.action.SUB"; @Override public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { Log.d(TAG, "onUpdate"); PendingIntent UT = PendingIntent.getBroadcast(context, 0, new Intent(WIDGET_UPP_ACTION), PendingIntent.FLAG_UPDATE_CURRENT); Log.d(TAG, "Su"); RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widgetui); views.setOnClickPendingIntent(R.id.butmain, UT); final int N = appWidgetIds.length; for (int i = 0; i < N; i++) { int appWidgetId = appWidgetIds[i]; String title=TAG; Log.d(TAG,"update"); updateAppWidget(context, appWidgetManager, appWidgetId, title); } } @Override public void onReceive(Context context, Intent intent) { Log.d("Receiver", "intent=" ); Log.d("Receiver", "1" ); String action =intent.getAction(); if(action.equalsIgnoreCase(WIDGET_UPP_ACTION)) { Log.d("Receiver", "2" ); AppWidgetManager gm = AppWidgetManager.getInstance(context); ComponentName cname = new ComponentName(context, provider.class); int[] appWidgetIds = gm.getAppWidgetIds(cname); final int N = appWidgetIds.length; for (int i = 0; i < N; i++) { int appWidgetId = appWidgetIds[i]; String title = TAG; Log.d("Receiver","s"); provider.UPP(context, gm, appWidgetId, title); } } }