2012-09-27 4 views
0

학습 목적으로 아날로그 시계 위젯을 만들고 시계 다이얼 이미지를 변경하는 설정 레이아웃을 어떻게 만들 수 있는지 알고 싶습니다. 위젯은 이미 끝났지 만 설정 레이아웃을 가져 오는 데는 onclicklstener를 사용할 수 없습니다.시계 다이얼 이미지 변경

이것은 내가 무엇을 가지고 :

@Override 
public void onDeleted(Context context, int[] appWidgetIds) 
{super.onDeleted(context, appWidgetIds); 
} 

@Override 
public void onDisabled(Context context) { 
     super.onDisabled(context); 
     } 

@Override 
public void onReceive(Context context, Intent intent) 
{ 
    String action = intent.getAction(); 
    if (AppWidgetManager.ACTION_APPWIDGET_UPDATE.equals(action)) 
    { 

     RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget); 

     Intent AlarmClockIntent = new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_LAUNCHER).setComponent(new ComponentName("com.android.alarmclock", "com.android.alarmclock.AlarmClock")); 
     PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, AlarmClockIntent, 0); 
     views.setOnClickPendingIntent(R.id.Widget, pendingIntent); 

     AppWidgetManager.getInstance(context).updateAppWidget(intent.getIntArrayExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS), views); 
    } 
} 
@Override 
public void onUpdate(Context context, AppWidgetManager appWidgetManager, 
    int[] appWidgetIds) 
{ 
     super.onUpdate(context, appWidgetManager, appWidgetIds); 
     RemoteViews updateViews = new RemoteViews(context.getPackageName(), R.layout.settings); 
     Intent launchActivity = new Intent(context,Widget.class); 
     PendingIntent pendingIntent = PendingIntent.getActivity(context,0, launchActivity, 0); 
     updateViews.setOnClickPendingIntent(R.id.Widget, pendingIntent); 
     ComponentName myComponentName = new ComponentName(context, Settings.class); 
     AppWidgetManager manager = AppWidgetManager.getInstance(context); 
     manager.updateAppWidget(myComponentName, updateViews); 
} 

} 
+1

"어디서부터 시작해야할지 모르겠다"항상 다운 보트를 얻을 것이므로, 그 이상으로 작업 할 필요가 있습니다. – djechlin

+0

OP를 추가 정보로 업데이트했습니다 –

+0

예, 삭제했습니다. 내 downvote :) – djechlin

답변

0

이 질문은 다시 here 질문을 받았다. 미래의 방문자를위한

:

PendingIntentonUpdate() 방법에 설정되어 있는지 확인합니다 코드를 넣습니다. 이렇게하면 위젯이 홈 화면에 놓이면 PendingIntent이 설정됩니다.

그래서 : 또한

public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgets) { 
    RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.widget_activity); 
    Intent intent = new Intent(context, Info.class); 
    PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); 
    remoteViews.setOnClickPendingIntent(R.id.Widget, pendingIntent); 

: 당신은 또한 먼저 홈 화면에 위젯을 추가 할 때 Activity가 자동으로 팝업 '정보'를하고 싶은 경우

, 당신은 this userful piece of information을 읽어야합니다.