4

アプリケーション用に 3 つのウィジェットを作成しています。3 つのウィジェットをメイン画面にドラッグすると、同じウィジェット レイアウトが得られますが、更新時にウィジェット レイアウトが変更されます。

メイン画面にドラッグしたらすぐに 3 つのウィジェットのレイアウトを更新するにはどうすればよいですか?

これが私のコードです:

public class FullWidgetProvider extends AppWidgetProvider {


    private int widgetID;
    private static SimpleDateFormat formatter = new SimpleDateFormat("dd MMM yyyy  hh:mm:ss a");
    static String strWidgetText = "";



    @Override
    public void onDeleted(Context context, int[] appWidgetIds) {
        // TODO Auto-generated method stub
        //super.onDeleted(context, appWidgetIds);
    //  Toast.makeText(context, "onDeleted()", Toast.LENGTH_LONG).show();
    }

    @Override
    public void onDisabled(Context context) {
        // TODO Auto-generated method stub
        //super.onDisabled(context);
        //Toast.makeText(context, "onDisabled()", Toast.LENGTH_LONG).show();
    }



    @Override
    public void onEnabled(Context context) {
        // TODO Auto-generated method stub
        super.onEnabled(context);


    }

    @Override
    public void onUpdate(Context context, AppWidgetManager appWidgetManager,
            int[] appWidgetIds) {
        // TODO Auto-generated method stub
        super.onUpdate(context, appWidgetManager, appWidgetIds);

        final int N = appWidgetIds.length;
        for (int i=0; i<N; i++) {
            int appWidgetId = appWidgetIds[i];
            updateAppWidget(context, appWidgetManager, appWidgetId);

        }

    }
4

1 に答える 1

2

これは私のコードの一部ですが、アイデアを得ることができます

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

    AppWidgetManager appManager = AppWidgetManager.getInstance(context); 
    ComponentName thisWidget = new ComponentName(context, ExampleAppWidgetProvider.class);
    RemoteViews updateViews = new RemoteViews(context.getPackageName(), R.layout.widget1);
    updateViews.setTextColor(R.id.widget1label, Color.YELLOW);
    appManager.updateAppWidget(thisWidget, updateViews); }
于 2014-10-17T05:20:07.750 に答える