마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

앱위젯과 MainActivity 의 Toggle Button 과 연동하고싶습니다.

0 추천

현재 MainActivity 에 Toggle 버튼을 통해 어떤 동작을 수행하는 어플을 제작하였습니다.

앱 위젯의 xml 에는 이미지버튼을 두고 클릭시 앱이 열리는 것 까지는 동작하게 만들었으나 바로 이어서 앱에 있는 토글 버튼도 동시에 동작시키고 싶습니다. 어떻게 해야할지 감이 안잡혀서 질문을 드립니다.

아래 코드는 앱위젯의 java 인 NewAppWidget.java 입니다. 현재 동작하고자 하는 mainActivity 의 토글버튼의 이름은 btnreport 입니다. 어떤식으로 연결해야할지 조언 부탁드립니다.

package values;

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

import com.cookandroid.emergencyapp.MainActivity;
import com.cookandroid.emergencyapp.R;

/**
 * Implementation of App Widget functionality.
 */
public class NewAppWidget extends AppWidgetProvider {

    static void updateAppWidget(Context context, AppWidgetManager appWidgetManager,
                                int appWidgetId) {

        // Construct the RemoteViews object
        RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.new_app_widget);
        // views.setTextViewText(R.id.appwidget_text, widgetText);
        Intent intent=new Intent(context, MainActivity.class);
        PendingIntent pe=PendingIntent.getActivity(context, 0, intent, 0);
        views.setOnClickPendingIntent(R.id.imageButton_my, pe);
        // Instruct the widget manager to update the widget
        appWidgetManager.updateAppWidget(appWidgetId, views);

    }

    @Override
    public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
        // There may be multiple widgets active, so update all of them
        for (int appWidgetId : appWidgetIds) {
            updateAppWidget(context, appWidgetManager, appWidgetId);
        }
    }

    @Override
    public void onEnabled(Context context) {
        // Enter relevant functionality for when the first widget is created
    }

    @Override
    public void onDisabled(Context context) {
        // Enter relevant functionality for when the last widget is disabled
    }
}

 

짜쿠사냥 (160 포인트) 님이 2017년 11월 29일 질문

1개의 답변

0 추천

App Widget의 변경을 SharedPreference에 저장하고 Activity 로드시에 해당 값을 기본값으로 Toggle하면 될 것 같습니다.

실시간으로 동작하게 하고 싶으시면 Listener Interface를 custom하게 제작해서 해당 상태에 대한 처리를 해주면 되겠죠.

 
minor (13,710 포인트) 님이 2017년 11월 29일 답변
...