Как я могу создать обратно совместимый виджет Android-пейджинга? - PullRequest
4 голосов
/ 02 ноября 2011

У меня возникают проблемы при попытке найти какие-либо учебные пособия по созданию виджета для пейджингового приложения, подобные тем, которые можно найти в Facebook, Twitter и FriendCaster.

Я мог бы использовать новые инструменты Android 3.0+ с адаптером, однако это было бы трудно проверить, поскольку у меня нет устройств, способных работать, и мой компьютер тоже не подходит.

Ответы [ 2 ]

3 голосов
/ 11 ноября 2011

Это можно сделать, задав вашему приложению состояние, которое определяет страницу, которую он показывает в данный момент. И назначьте трансляцию кнопкам для изменения состояния.

  1. Отправка трансляции при нажатии кнопок с использованием PendingIntent .
  2. Приемник слушает трансляцию и отслеживает состояние (стр.)
  3. Обновление приложения в зависимости от текущего состояния

Вот пример неполного кода:

RemoteViews remoteViews = new RemoteViews(mContext.getPackageName(), R.layout.widget_weather);

// update appwidget remoteviews depending on state (ie which page to show)
remoteViews = populateViews(remoteViews, mState);

// set next button
Intent intent = new Intent(MYBROADCAST_NEXT);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, requestCode, intent, flags);
remoteViews.setOnClickPendingIntent(R.id.appwidget_btn_next, pendingIntent);

// set prev button
intent = new Intent(MYBROADCAST_PREV);
pendingIntent = PendingIntent.getBroadcast(context, requestCode, intent, flags);
remoteView.setOnClickPendingIntent(R.id.appwidget_btn_prev, pendingIntent);

// update the AppWidget ...

Надеюсь, это поможет достичь того, что вы хотите.

1 голос
/ 02 ноября 2011

Вы можете использовать пакет совместимости, он обратно совместим. Минимальный уровень API - 4, то есть Android 1.6

http://developer.android.com/sdk/compatibility-library.html

Используйте ViewPager, для этого есть множество примеров. http://android -developers.blogspot.com / 2011/08 / горизонтальный ракурс-ударяя-с-viewpager.html

...