
GENiALi
Fortgeschrittenes Mitglied
- 11
Hallo
Ich versuche ein Homescreen Widget zu machen das eine Liste darstellt. Ich krieg es einfach nicht zum laufen und finde den Fehler nicht.
Ich habe schon das Problem das nicht mal die WidgetListService Klasse aufgerufen wird.
Hier mal Code.
Service
Factory
Ich versuche ein Homescreen Widget zu machen das eine Liste darstellt. Ich krieg es einfach nicht zum laufen und finde den Fehler nicht.
Ich habe schon das Problem das nicht mal die WidgetListService Klasse aufgerufen wird.
Hier mal Code.
Code:
public class C2cWidget1xNRed extends AppWidgetProvider
{
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds)
{
if (appWidgetIds != null && appWidgetIds.length > 0)
{
for (int widgetId : appWidgetIds)
{
Intent svcIntent=new Intent(context, WidgetListService.class);
svcIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, widgetId);
svcIntent.setData(Uri.parse(svcIntent.toUri(Intent.URI_INTENT_SCHEME)));
RemoteViews widget=new RemoteViews(context.getPackageName(),
R.layout.c2c_widget_4x_n_red);
widget.setRemoteAdapter(widgetId, R.id.llNotification, svcIntent);
Intent clickIntent=new Intent(context, AlarmActivity.class);
PendingIntent clickPI=PendingIntent
.getActivity(context, 0,
clickIntent,
PendingIntent.FLAG_UPDATE_CURRENT);
widget.setPendingIntentTemplate(R.id.llNotification, clickPI);
appWidgetManager.updateAppWidget(widgetId, widget);
}
}
super.onUpdate(context, appWidgetManager, appWidgetIds);
}
}
Code:
public class WidgetListService extends RemoteViewsService
{
@Override
public RemoteViewsFactory onGetViewFactory(Intent intent)
{
return(new ListViewFactory(this.getApplicationContext(), intent));
}
}
Code:
public ListViewFactory(Context context, Intent intent)
{
this.context = context;
appWidgetId = intent.getIntExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID);
alarmBal = new AlarmBal(C2C.getC2c());
alarme = alarmBal.getList();
}
@Override
public void onCreate()
{
}
@Override
public int getCount()
{
return alarme.size();
}
@Override
public RemoteViews getViewAt(int position)
{
Alarm alarm = alarme.get(position);
if (alarm != null)
{
RemoteViews view = new RemoteViews(context.getPackageName(), R.layout.c2c_widget_4x1_red);
view.setTextViewText(R.id.alarm_item_tvFrom, alarm.getFrom());
view.setTextViewText(R.id.alarm_Item_tvDate, alarm.getDate().toLocaleString());
view.setTextViewText(R.id.alarm_Item_tvMessage, alarm.getShortMessage(50));
view.setTextViewText(R.id.alarm_Item_tvDevice, alarm.getDeviceName());
view.setTextViewText(R.id.alarm_Item_tvType, alarm.getAlarmType());
if (alarm.getType() == AlarmType.OutgoingSMS || alarm.getType() == AlarmType.IncommingSMS)
{
view.setTextViewText(R.id.alarm_Item_tvDuration, String.valueOf(alarm.getDuration()) + " " + context.getText(R.string.alarm_length));
}
else
{
view.setTextViewText(R.id.alarm_Item_tvDuration, Tools.getElapsedTimeHoursMinutesSecondsString(context, alarm.getDuration()));
}
return view;
}
return null;
}
@Override
public RemoteViews getLoadingView()
{
return null;
}
@Override
public int getViewTypeCount()
{
return 1;
}
@Override
public long getItemId(int position)
{
return position;
}
@Override
public boolean hasStableIds()
{
return true;
}