안드로이드 개발 질문/답변
(글 수 45,052)
위젯 만들어 보려고 하는데요
지금 상황이 메인엑티비티 버튼을 눌르면 작업이 수행되는데,
그 버튼의 기능을 위젯으로 만들려고 하는데 이틀째 구글링 했는데도 도저히 감을 잡을 수 없어
답답한 나머지 글을 남깁니다 ㅠㅠ
요점은 위젯의 버튼이 메인엑티비티의 버튼의 기능을 했으면 합니다.
제 생각으로는 위젯의 클릭액션을 메인 버튼이랑 연결을 할 수 있을거 같은데 그런식으로는 구현이 불가능 한가요?
위젯의 버튼은 그냥 별개의 버튼으로 봐야 하는건가요?
고수님들 힌트 기다리겠습니다.
public class Widget extends AppWidgetProvider {
private static final String CLICK_ACTION = "com.example.ex.CLICK";
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(CLICK_ACTION)) {
AppWidgetManager manager = AppWidgetManager.getInstance(context);
this.onUpdate(context, manager, manager
.getAppWidgetIds(new ComponentName(context, Widget.class)));
} else {
super.onReceive(context, intent);
}
}
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
final int N = appWidgetIds.length;
for (int i = 0; i < N; i++) {
int appWidgetId = appWidgetIds[i];
RemoteViews views = new RemoteViews(context.getPackageName(),
R.layout.widget);
Intent intent = new Intent(CLICK_ACTION);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context,
0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
views.setOnClickPendingIntent(R.id.w_button, pendingIntent);
appWidgetManager.updateAppWidget(appWidgetId, views);
}
}
}
위젯에서 버튼을 누르면 db에 데이터를 갱신하고
액티비티의 onResume에서 db의 데이터를 읽어다가 처리하면 원하는 기능을 구현하실 수 있지 않을까 합니다.