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

위젯에서 호출할 activity로 데이터넘기기 [closed]

0 추천

안녕하세요. 위젯을 구현중에 있는데요..

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 로 작성하는것이 더 좋을까요??

조언부탁드립니다.

감사합니다.

질문을 종료한 이유: 해결
익명사용자 님이 2014년 7월 1일 질문
2014년 7월 2일 closed
putExtra말고 setData로 해결했습니다.
읽어주셔서 감사합니다~
...