Java 将clickCount扩展到2个以上的项目

Java 将clickCount扩展到2个以上的项目,java,android,android-widget,Java,Android,Android Widget,我正在学习创建Android小部件,遵循来自 本教程展示了如何使用一个按钮和图像构建android小部件。按下按钮将更改显示的图像 public class MyWidgetIntentReceiver extends BroadcastReceiver { private static int clickCount = 0; @Override public void onReceive(Context context, Intent intent) { if(intent.get

我正在学习创建Android小部件,遵循来自

本教程展示了如何使用一个按钮和图像构建android小部件。按下按钮将更改显示的图像

public class MyWidgetIntentReceiver extends BroadcastReceiver {

private static int clickCount = 0;

@Override
public void onReceive(Context context, Intent intent) {
    if(intent.getAction().equals("pl.looksok.intent.action.CHANGE_PICTURE")){
        updateWidgetPictureAndButtonListener(context);
    }
}

private void updateWidgetPictureAndButtonListener(Context context) {
    RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.widget_demo);
    remoteViews.setImageViewResource(R.id.widget_image, getImageToSet());

    //REMEMBER TO ALWAYS REFRESH YOUR BUTTON CLICK LISTENERS!!!
    remoteViews.setOnClickPendingIntent(R.id.widget_button, MyWidgetProvider.buildButtonPendingIntent(context));

    MyWidgetProvider.pushWidgetUpdate(context.getApplicationContext(), remoteViews);
}

private int getImageToSet() {
    clickCount++;
    return clickCount % 2 == 0 ? R.drawable.me : R.drawable.wordpress_icon;
}
}

我想做的是将clickCount扩展到多个12幅图像。作者评论说: 将可提取内容放入ArrayList,然后单击按钮获取与clickCount对应的可提取内容 记住,若计数器达到ArrayList的大小,请重置计数器,以避免IndexOutOfBounds异常

但我真的不知道该怎么做,因为我在Java和Android开发方面才刚刚起步。

我就是这样做的:

public class MyWidgetIntentReceiver extends BroadcastReceiver {

private static int clickCount = 0;

@Override
public void onReceive(Context context, Intent intent) {
    if(intent.getAction().equals("com.example.intent.action.CHANGE_PICTURE")){
        updateWidgetPictureAndButtonListener(context);
    }
}

private void updateWidgetPictureAndButtonListener(Context context) {
    RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.widget_demo);
    remoteViews.setImageViewResource(R.id.widget_image, getImageToSet());

    //REMEMBER TO ALWAYS REFRESH YOUR BUTTON CLICK LISTENERS!!!
    remoteViews.setOnClickPendingIntent(R.id.widget_button, MyWidgetProvider.buildButtonPendingIntent(context));

    MyWidgetProvider.pushWidgetUpdate(context.getApplicationContext(), remoteViews);
}

private int getImageToSet() {

    clickCount++;
    if (clickCount == 1) {
        return R.drawable.image1 ;
    }
    if (clickCount == 2) {
        return R.drawable.image2 ;
    }
    if (clickCount == 3) {
        return R.drawable.image3 ;
    }
    clickCount = 0;
    return R.drawable.image4 ;
}
}