Autore Topic: Bottone Widget non lancia Activity  (Letto 863 volte)

Offline trevo92

  • Nuovo arrivato
  • *
  • Post: 12
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S
  • Sistema operativo:
    Windows 7
Bottone Widget non lancia Activity
« il: 28 Settembre 2012, 11:06:56 CEST »
0
Ciao a tutti.
Come da titolo ho un problema con un widget che contiene un bottone, il quale dovrebbe lanciare una nuova activity quando premuto.

Posto il codice dell'AppWidgetProvider:
Codice (Java): [Seleziona]
import android.app.PendingIntent;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.widget.RemoteViews;

public class MyWidget extends AppWidgetProvider{
        @Override
          public void onUpdate(Context ctxt, AppWidgetManager mgr,
                                int[] appWidgetIds) {
            ComponentName me=new ComponentName(ctxt, MyWidget.class);
             
            mgr.updateAppWidget(me, buildUpdate(ctxt, appWidgetIds));
          }
         
          private RemoteViews buildUpdate(Context ctxt, int[] appWidgetIds) {
            RemoteViews updateViews=new RemoteViews(ctxt.getPackageName(),
                                                    R.layout.mywidget_layout);
         
            Intent i=new Intent(ctxt, MainActivity.class);
           
           
            i.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
            i.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, appWidgetIds);
           
           
            PendingIntent pi=PendingIntent.getBroadcast(ctxt, 0 , i,
                                                        PendingIntent.FLAG_UPDATE_CURRENT);
           updateViews.setTextViewText(R.id.widgetButton, "prova");
           updateViews.setOnClickPendingIntent(R.id.widgetButton, pi);
           
            return(updateViews);
          }
}

Ora posto il codice del layout relativo:
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:id="@+id/RelativeLayout1"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:orientation="vertical" >


    <Button
       android:id="@+id/widgetButton"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_alignParentLeft="true"
       android:layout_alignParentTop="true"
       android:text="Button" />



    <TextView
       android:id="@+id/TextNumberValue"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_alignLeft="@id/widgetButton"
       android:layout_alignParentLeft="true"
       android:layout_below="@id/widgetButton"
       android:text="TextView" />

</RelativeLayout>

e infine il widget provider:
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
   
   android:initialLayout="@layout/fastsmswidget_layout"
   android:minHeight="72dp"
   android:minWidth="72dp" android:updatePeriodMillis="900000">

</appwidget-provider>

La MainActivity che dovrebbe essere lanciata è semplicemente un helloworld di prova, ma quando premo sul bottone essa non viene lanciata.
Se avete anche altri consigli su come implementare l'evento onClick nel relativo bottone accetto qualunque tipo di suggerimento.
Grazie

Offline DarnellNajanReed

  • Utente normale
  • ***
  • Post: 359
  • Respect: +49
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus One, Acer Iconia A500/501, Asus Transformer Prime, Galaxy ACE, Galaxy S Plus, Galaxy S Advance P, Galaxy Tab 2 7.0, Google Nexus 7
  • Play Store ID:
    Luigi Notaro
  • Sistema operativo:
    OS X 10.8.3
Re:Bottone Widget non lancia Activity
« Risposta #1 il: 28 Settembre 2012, 11:13:32 CEST »
0
Credo che il problema sia qui:

Codice (Java): [Seleziona]
PendingIntent pi=PendingIntent.getBroadcast(ctxt, 0 , i, PendingIntent.FLAG_UPDATE_CURRENT);
Dovresti chiamare getActivity  ;-)

Offline trevo92

  • Nuovo arrivato
  • *
  • Post: 12
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S
  • Sistema operativo:
    Windows 7
Re:Bottone Widget non lancia Activity
« Risposta #2 il: 28 Settembre 2012, 11:41:17 CEST »
0
Grazie mille. Ero convinto di averlo già provato e invece appena l'ho modificato ha funzionato  ;-)