Как я могу построить свой метод onReceive в своем классе виджетов Android для переключения изображения ImageView? - PullRequest
1 голос
/ 27 октября 2011

Благодаря некоторым учебникам я теперь создал свой первый работающий маленький Android Widget.

Он имеет ImageView, который меняет свое изображение, когда я нажимаю на него один раз.

Но теперь я хочунажмите его несколько раз, чтобы перейти к другому изображению, как к переключателю.

Поэтому я установил следующее ограничение IF в моем методе onReceive:

public void onReceive(Context context, Intent intent) {
    if (intent.getAction().equals(ACTION_WIDGET_RECEIVER)) {
         try {                       
            if(counter %2 == 0) {
            views.setImageViewResource(R.id.iv1, R.drawable.button_state1);                     
            cn1 = new     (context, MyDailyPlateWidgetProvider.class);  
            AppWidgetManager.getInstance(context).updateAppWidget(cn1, views);

            counter++;
            } else { counter++;
            views.setImageViewResource(R.id.iv1, R.drawable.button_state2);                          
            cn2 = new     (context, MyDailyPlateWidgetProvider.class);                  
            AppWidgetManager..getInstance(context).updateAppWidget(cn2, views);
            }
        }

    // ...
}

Но мне кажется,что я не могу постоянно изменять свой int counter с помощью counter++.

Есть ли способ установить int моего класса, щелкнув по моему виджету, или с помощью другого решения для построения какого-либо поведения переключенияв виджете?

Возможно ли это даже без работающего фонового сервиса?

1 Ответ

1 голос
/ 27 октября 2011

В остальном вам не удается увеличить счетчик.Представьте, что счетчик сначала равен 0, а затем (счетчик% 2 == 0) равен true, поэтому он выполняет первую часть и увеличивает счетчик.В следующий раз счетчик равен 1, поэтому (counter% 2 == 0) имеет значение false, поэтому он выполняет вторую часть ... каждый раз с этого момента, потому что counter всегда 1Просто увеличивайте счетчик каждый раз.

...