안녕하세요. 위젯을 구현중에 있는데요..
3*1 위젯인데 버튼1, 텍스트뷰, 버튼2 로 구성되어있습니다.
이걸 앱이 시작되는 메인 activity에 서로 다른 값을 넘겨주고 싶어서 아래와 같이 작성을 하였는데
실행시켜서 버튼1, 텍스트뷰, 버튼2을 다 눌러보면 WidgetFlag 에 C만 들어옵니다.
버튼1을 눌렀을땐 A, 버튼2를 눌렀을 땐 B가 들어와야 하는데..전부 C가 들어오니 어떻게 해결을 해야할지 모르겠습니다.
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
// TODO Auto-generated method stub
super.onUpdate(context, appWidgetManager, appWidgetIds);
this.context = context;
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.test_widget);
Intent intentCallActivity1 = new Intent(context, LoginActivity.class);
intentCallActivity1.putExtra("WidgetFlag", "A");
PendingIntent pendingIntent1 = PendingIntent.getActivity(context, 0, intentCallActivity1, 0);
views.setOnClickPendingIntent(R.id.btn1, pendingIntent1);
Intent intentCallActivity2 = new Intent(context, LoginActivity.class);
intentCallActivity2.putExtra("WidgetFlag", "B");
PendingIntent pendingIntent2 = PendingIntent.getActivity(context, 0, intentCallActivity2,0);
views.setOnClickPendingIntent(R.id.tv_widget, pendingIntent2);
Intent intentCallActivity3 = new Intent(context, LoginActivity.class);
intentCallActivity3.putExtra("WidgetFlag", "C");
PendingIntent pendingIntent3 = PendingIntent.getActivity(context, 0, intentCallActivity3,0);
views.setOnClickPendingIntent(R.id.btn2, pendingIntent3);
ComponentName thisWidget = new ComponentName(context, WidgetReceiver.class);
AppWidgetManager manager = AppWidgetManager.getInstance(context);
manager.updateAppWidget(thisWidget, views);
}
AndroidManifest.xml 파일에는 아래와같이 작성하였습니다.
<receiver android:name=".widget.WidgetReceiver">
<meta-data android:name="android.appwidget.provider" android:resource="@xml/widget_configuration"/>
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE"/>
</intent-filter>
</receiver>
아니면 차라리 preference 로 작성하는것이 더 좋을까요??
조언부탁드립니다.
감사합니다.