Autore Topic: widget con bottone  (Letto 732 volte)

Offline Trigun

  • Utente normale
  • ***
  • Post: 183
  • Respect: +4
    • Mostra profilo
widget con bottone
« il: 14 Luglio 2014, 13:44:34 CEST »
0
forse sono stupido...
ma non riesco a far funzionare questo banalissimo widget ... (è il mio primo widget)

composto da semplicemente un bottone che clickato dovrebbe fare qualcosa....
peccato che non venga rilevato il click e come se non bastasse la dimensione del widget è sballata....

allora:
main.xml:
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:orientation="vertical"
   android:layout_gravity="center" >
 
    <Button
       android:id="@+id/widget_button"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_gravity="center"
       android:text="A" />
</LinearLayout>
apri_porta_provider.xml <-- ho messo 70 dp e nonostante questo mi esce un 2x2
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
   android:minWidth="70dp"
   android:minHeight="70dp"
   android:updatePeriodMillis="36000000"
   android:initialLayout="@layout/main"
/>


manifesto..... qui ho provato ad usare 2 classi separate una che gestisce il widget e l'altra che gestisce il click .. ma non va ... idem con classe singola
Codice (XML): [Seleziona]
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="it.trigun.widget"
   android:versionCode="1"
   android:versionName="1.0" >

    <uses-sdk
       android:minSdkVersion="9"
       android:targetSdkVersion="21" />

    <application
       android:allowBackup="true"
       android:icon="@drawable/ic_launcher"
       android:label="@string/app_name"
       android:theme="@style/AppTheme" >

        <!-- Broadcast Receiver that will process AppWidget Updates -->
        <receiver android:name="ApriPortaWidget" >
            <intent-filter>
                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
            </intent-filter>

            <meta-data
               android:name="android.appwidget.provider"
               android:resource="@xml/apri_porta_provider" />
        </receiver>
        <receiver
           android:name="ApriPortaReceiver"
           android:label="widgetBroadcastReceiver" >
            <intent-filter>
                <action android:name="it.trigun.intent.action.APRI_PORTA" />
            </intent-filter>

            <meta-data
               android:name="android.appwidget.provider"
               android:resource="@xml/apri_porta_provider" />
        </receiver>
    </application>

</manifest>


Codice (Java): [Seleziona]
public class ApriPortaWidget extends AppWidgetProvider {

        @Override
        public void onUpdate(Context context, AppWidgetManager appWidgetManager,
                        int[] appWidgetIds) {
                Log.d("test2", "test2");

                RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.main);
                remoteViews.setOnClickPendingIntent(R.id.widget_button, buildButtonPendingIntent(context));

        }

        public static PendingIntent buildButtonPendingIntent(Context context) {
                Log.d("test3", "test3");
                Intent intent = new Intent();
            intent.setAction("it.trigun.intent.action.APRI_PORTA");
            return PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
        }
 

}

il logcat non mi stampa assolutamente nulla O.o

cosa manca?

edit... mancava
Codice (Java): [Seleziona]
                appWidgetManager.updateAppWidget(appWidgetIds, remoteViews);ora funziona...
« Ultima modifica: 14 Luglio 2014, 14:04:53 CEST da Trigun »