Android - 更新小部件文本

时间:2010-05-18 20:13:03

标签: android widget

我有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 个答案:

答案 0 :(得分:1)

  • 关于第一个问题我发现了一个关于句柄小部件事件的好例子:

Handling User Interaction with Android App Widgets

  • 关于我在网上阅读的第二个,我发现在android 1.6中,更新小部件的最短时间是30分钟。

我尝试了它并且有效。

我希望这有助于其他人!!!

答案 1 :(得分: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!");
            }           
        });