2011-03-18 24 views
22

Ben android widget oluşturduk ve başarılı bir şekilde çalışır, ama şimdi ben yeni aktivite açabilirsiniz böylece widget tıklaması olayında kullanmak istiyorum.click widget tarihinde android widget

bana düzen içinde

+1

widget_layout kimlikli kök öğesi LinearLayout var işaret. – Mathew

+1

Bkz. Http://stackoverflow.com/questions/2748590/clickable-widgets-in-android –

cevap

-3

, söz konusu widget için

android:onClick="your method name inside your activity" 

ve aktivitesinde

vermek vermek Yardımı:

public void methodname(View view) { 
     //give your intent code here 
} 

Not: Eğer böyle bir yöntemini çağırdığınızda, yönteminiz herkese açık olmalı ve View nesnesini parametre olarak kullanmalıdır.

+1

android: onClick yalnızca Android 1.6+ – Raunak

+0

üzerinde hangi Android sürümünü kullanıyorsunuz? – Mathew

+1

android: onClick, widget'larda desteklenmiyor. Eğer buna sahipseniz, widget ana ekranda bile görünmüyordu - hata mesajını widget'ını yüklemekte başarısız oldu ... – coolcool1994

8

bunu kullandım: Eğer hak olarak herhangi bir cevap bulmak onu kabul ama kene koyarak zaman widget.xml olarak

// Create an Intent to launch ExampleActivity 
     Intent intent = new Intent(context, Mainpage.class); 
     PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); 
     remoteViews.setOnClickPendingIntent(R.id.widget, pendingIntent); 
+10

Evet, ancak widget tıklandığında çağrılacak yöntem nerede? – KalEl

+0

teşekkürler ... Bu benim için çalıştı –

35
@Override 
public void onUpdate(Context context, AppWidgetManager appWidgetManager, 
        int[] appWidgetIds) { 
    for (int i = 0; i < appWidgetIds.length; i++) { 
     int appWidgetId = appWidgetIds[i]; 

     Intent intent = new Intent(context, TaskManagerActivity.class); 
     PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); 

     RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget); 
     views.setOnClickPendingIntent(R.id.widget_layout, pendingIntent); 
     appWidgetManager.updateAppWidget(appWidgetId, views); 
    } 
} 

Ben

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:id="@+id/widget_layout" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:paddingTop="10dip" 
      android:paddingLeft="10dip" 
      android:orientation="vertical"> 
+1

yardımcı oldu, teşekkür ederim :) –

+0

Merhaba @xtem, ben widget id algılama konusunda sorunla karşılaşıyorum. Ana ekranımda 3 widget oluşturdum ve her birinin temasını ayrı ayrı değiştirmek istiyorum. Bu yüzden, widget'a tıkladığımda, Configuration sınıfım açılır ve her bir widget'ım güncellendi onUpdate(). Bunu ayrı ayrı yapabilir miyim? –