Merhaba,
Öncelikle manifest dosyasında buton için bir action oluşturman gerekiyor aşağıdaki gibi;
[code]<action android:name="paket_ismi.WIDGET_BUTTON" />[/code]
Daha sonra widget için oluşturduğun class da manifest dosyasında belirttiğin action olayı için bir string değişken oluşturalım;
[code]public static String WIDGET_BUTTON = "paket_ismi.WIDGET_BUTTON";[/code]
Daha sonra aynı class ın onUpdate metodunda aşağıdaki gibi bir tanımlama yapmak gerekmektedir;
[code]
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
for(int i=0; i<appWidgetIds.length; i++){
int currentWidgetId = appWidgetIds[i];
RemoteViews views = new RemoteViews(context.getPackageName(),
R.layout.widgetpage);
Intent fIntent = new Intent(WIDGET_BUTTON);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, fIntent, PendingIntent.FLAG_UPDATE_CURRENT);
views.setOnClickPendingIntent(R.id.next, pendingIntent );//R.id.next widget daki next butonuna bir event tanımladığımızı işaret eder.
appWidgetManager.updateAppWidget(currentWidgetId,views);
}
}
[/code]
Daha sonra onReceive metodunda aşağıdaki gibi bir kod olması lazım;
[code]
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
super.onReceive(context, intent);
if (WIDGET_BUTTON.equals(intent.getAction())) {
//your code here
AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
RemoteViews views = new RemoteViews(context.getPackageName(),
R.layout.widgetpage);
views.setTextViewText(R.id.textView1, "butona tıklandı");
ComponentName thisWidget = new ComponentName(context, widget_page.class);
appWidgetManager.updateAppWidget(thisWidget, views);
}
}
[/code]
Burada widgetta bir butona tıklandığında yine widget üzerinde yer alan bir textview in değeri değiştirilmiştir. İşine yaraması dileğiyle, kolay gelsin..