Android - обновить текст виджета - PullRequest
1 голос
/ 19 мая 2010

У меня есть 2 вопроса об обновлении виджетов

  • У меня есть 2 кнопки, и мне нужно изменить текст одной кнопки, когда я нажимаю другую, как я могу это сделать?
  • При первом открытии виджета он вызывает метод onUpdate, но никогда не вызывает его снова. Мне нужно обновлять виджет каждые 2 секунды, и у меня есть эта строка в XML.

    андроида: updatePeriodMillis = "2000"

Нужна ли мне служба или она должна работать только с тегом updatePeriodMillis?

  • метод onUpdate

    RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.newswidget);
    
    Intent intent = new Intent(context, DetalleConsulta.class);
    intent.putExtra(DetalleConsulta.CONSULTA_ID_NAME, "3");
    PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);
    views.setOnClickPendingIntent(R.id.btNews, pendingIntent);
    
    /* Inicializa variables para llamar el controlador */
    this.imei = ((TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE)).getDeviceId();
    this.controlador = new Controlador(this.imei);
    
    try {
        this.respuestas = this.controlador.recuperarNuevasRespuestas();
    
        if(this.respuestas != null && this.respuestas.size() > 0){
            Iterator<Consulta> iterRespuestas = this.respuestas.iterator();
            views.setTextViewText(R.id.btNews, ((Consulta)iterRespuestas.next()).getRespuesta());
        }
    } catch (PersistenciaException e) {
        //TODO manejar error
    }
    
    appWidgetManager.updateAppWidget(appWidgetIds, views);
    

большое спасибо !!!

Ответы [ 2 ]

1 голос
/ 19 мая 2010
  • о первом вопросе, который я нашел отличный пример о событиях дескриптора виджета:

Обработка взаимодействия пользователя с виджетами приложений Android

  • о втором, который я читал в Интернете, и я обнаружил, что в Android 1.6 минимальное время обновления виджета составляет 30 минут.

Я попробовал, и это работает.

Надеюсь, это поможет другим !!!

0 голосов
/ 19 мая 2010

да, это изменилось с тех пор, как пончик (1.6), чтобы избежать разрядки вашей батареи в ближайшее время.

Привет, Дэвид, в следующий раз попробуй перевести другой вопрос в другую ветку, чтобы он соответствовал stackoverflow.com =)

чтобы обновить текст с другой кнопки ...

 final    Button btn1 = (Button) this.findViewById(R.id.Button01);
   final Button btn2 = (Button) this.findViewById(R.id.Button02);

   btn1.setOnClickListener(new OnClickListener() {                      
            @Override
            public void onClick(View v) {
                btn2.setText("Button1 changed your text!");
            }           
        });      
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...