2010-05-18 3 views
1

У меня есть 2 вопроса о виджетах обновляютAndroid - обновление виджета текста

  • У меня есть 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); 
    

ТНХ много !!!

+0

сделать вас имеют намерение вашего виджета, определенные в вашем файле Manifest.xml ??? напишите свой код! – Jorgesys

+0

да, у меня есть этот код в явном <приемник андроид: имя = "co.edu.uniandes.moosas.lib.widget.news.NewsWidget"> \t \t \t <намерения фильтра> \t \t \t \t <действие андроид: имя = "android.appwidget.action.APPWIDGET_UPDATE" /> \t \t \t \t \t \t <мета-данные андроид: имя = "android.appwidget.провайдер» \t \t \t \t андроид: ресурс = "@ XML/newswidget"/> \t \t – david

+0

Hola Давид ли у вас в вашей основной деятельности, которая начинается виджет <намеренного фильтра> <действие андроида: name = "android.appwidget.action.APPWIDGET_CONFIGURE" /> вы можете разместить свой Android Manifest.xml? – Jorgesys

ответ

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

Handling User Interaction with Android App Widgets

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

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

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

0

Да, что изменилось с тех пор, как пончик (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!"); 
      }   
     });  
+0

Привет, THX для обсуждения, в следующий раз я буду задавать вопросы в разных потоках. Об ответе я хочу сделать есть только в моем виджетах приложения, ответ находится в ссылке i post в моем собственном ответе ... thx ... – david

Смежные вопросы