2010-05-18 40 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); 
    

THX很多!

+0

你你的Manifest.xml文件中定義了你的小部件的意圖? 發佈您的代碼! – Jorgesys 2010-05-18 20:28:52

+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 2010-05-18 20:45:13

+0

HOLA大衛,u必須在啓動小部件的主要活動 <意圖過濾器> <操作機器人?您可以發佈您的Android Manifest.xml? – Jorgesys 2010-05-19 01:28:12

回答

1
  • 關於第一個問題,我發現關於手柄部件事件一個很好的例子:

Handling User Interaction with Android App Widgets

  • 關於第二個我讀在網站上,我發現了Android 1.6最短時間更新小部件是30分鐘。

我想它和它的作品。

我希望這可以幫助別人!因爲甜甜圈(1.6),改變

0

是爲避免你的電池將很快耗盡。

嘿大衛接下來的時間嘗試把你的其他問題,在不同的線程是符合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爲advive,下次我會在不同的線程中提出問題。 關於我想要做的問題的答案是,但在我的應用程序小部件,答案是在我發佈在我自己的答案的鏈接... thx ... – david 2010-05-25 09:38:00