안드로이드 개발 질문/답변
(글 수 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);
}
}
}



