한 걸음 두 걸음
Android 안드로이드 ] 위젯 버튼 클릭 이벤트 설정하기 본문
반응형
package com.onsemiro.hanpinetree.widgetbuttoneventmodule;
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.util.Log;
import android.widget.RemoteViews;
/**
* Implementation of App Widget functionality.
*/
public class EventWidget extends AppWidgetProvider {
private final String ACTION_BTN = "ButtonClick";
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.event_widget);
Intent intent = new Intent(context, EventWidget.class).setAction(ACTION_BTN);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context,0, intent, 0);
remoteViews.setOnClickPendingIntent(R.id.button2, pendingIntent);
appWidgetManager.updateAppWidget(appWidgetIds, remoteViews);
}
@Override
public void onReceive(Context context, Intent intent) {
super.onReceive(context, intent);
String action = intent.getAction();
if(action.equals(ACTION_BTN)){
//버튼 클릭 결과를 로그로 확인합니다.
Log.d("이벤트클릭 테스트 ","클릭!");
//버튼 클릭 결과를 위젯 위의 텍스트뷰를 변경함으로 확인합니다.
AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.event_widget);
ComponentName componentName = new ComponentName(context, EventWidget.class);
remoteViews.setTextViewText(R.id.appwidget_text,"이벤트발생!");
appWidgetManager.updateAppWidget(componentName, remoteViews);
}
}
}
반응형
'FrontEnd > Android' 카테고리의 다른 글
안드로이드 Android Studio ] Java level 변경하기 (0) | 2019.12.09 |
---|---|
android 안드로이드 ] 레드로핏 Retrofit2 실습 _ 서버 없이 (1) | 2019.12.03 |
Android 안드로이드 ] 30분 이내의 업데이트 주기를 가진 위젯 (0) | 2019.09.22 |
Android 안드로이드 ] 위젯 Widget 리스트뷰 로딩중...문제 해결! (0) | 2019.09.21 |
Android 안드로이드 ] Listview Widget 위젯 만들기 (0) | 2019.09.21 |