Implementando ActionBar-PulltoRefresh por Chris Banes, errores de biblioteca, etc.

Siguiendo mi pregunta anterior sobre importar una cierta biblioteca de github en mi proyecto, decidí que quería implementar una diferente, pero recibo muchos errores en este momento.

Importación de Android Listview actualización por extracción, error de properties del proyecto

En línea con Google que actualmente usa ActionBar-PullToRefresh de Chris Banes: https://github.com/chrisbanes/ActionBar-PullToRefresh , he decidido que quería usar esa biblioteca también para la aplicación de Android que estoy desarrollando actualmente para mi internado. Sin embargo, cuando trato de importar el código existente en el espacio de trabajo desde el file zip descomprimido, instantáneamente recibo un montón de errores, tanto en la biblioteca como en las actividades de ejemplo. Por ejemplo, en la carpeta de la biblioteca, en ActionBarPullToRefresh.java, subraya Clase dentro del primer hashmap privado y dice que las references al tipo genérico Clase deben ser parametrizadas.

El IDE (eclipse) también da toneladas de errores a las otras carpetas incluidas, y cuando agrego la carpeta de la biblioteca a las bibliotecas de mi proyecto principal, usando las properties -> pestaña android, lleva los errores a ese proyecto (bastante lógicamente) )

¿Alguien podría enviarme una dirección sobre cómo debo importar y usar esta biblioteca?

Escribiré esto aquí para futuros usuarios de PullToRefresh. Uso IntelliJ IDEA en lugar de eclipse, así que recuerde que la palabra Módulo y Proyecto son equivalentes. Cuando tiene que agregar un proyecto a Eclipse, la acción es agregar module en IDEA.

Ejemplo con ActionBarSherlock (ABS a partir de ahora).

Lo que tienes :

  1. Usted tiene un Módulo llamado: MyProject. Este es tu module principal de Android.
  2. Desea agregar PullToRefresh a algunos Fragmentos (por ejemplo) en su MyProject.

Primer paso : download y copyr.

Personalmente, me gusta tener un clon o un tenedor de las bibliotecas que estoy usando para leer las confirmaciones y cambiar los loggings. No solo aprende al ver el código de otras personas, sino que también obtiene las "últimas noticias" sobre las bibliotecas que usa. Es una situación de ganar-ganar. Restring lo que dijo Jeff Atwood: " Lee The Source, Luke ". Para hacer esto, clone ActionBar-PullToRefresh de la URL correcta .

Ahora no me gusta tener el clon con mis modules / proyectos, así que generalmente clono proyectos en otro lugar y luego muevo manualmente lo que necesito. Es tedioso, pero de esa manera solo obtengo lo que quiero. Entonces, ¿qué necesitas entonces? El clon contiene dos directorys importantes: Extras y Biblioteca . Vamos a necesitar cosas de estos.

Copie el directory de la biblioteca a la raíz de su proyecto: /path/to/your/project/pulltorefresh Copie el extra correspondiente (ABS o Compat) a su raíz del proyecto también …

Esto es lo que tienes hasta ahora:

 /path/to/your/project/MyProject /path/to/your/project/pulltorefresh /path/to/your/project/pulltorefresh-abs (or compat) 

Paso dos Importe esto: importe estos modules (proyectos en eclipse) en el proyecto / espacio de trabajo. Esto debería ser simple si conoce su IDE, pero como una reference rápida: Archivo -> Importar module -> busque la carpeta pulltorefresh desde arriba (y las abs o compat más adelante) y siga el asistente. Si está utilizando Eclipse, consulte este enlace para saber cómo hacerlo .

Ahora deberías tener en tu panel izquierdo (⌘1) la siguiente estructura

 MyProject pulltorefresh pulltorefresh-abs 

Paso 3 Agregue las references correctas

Suponiendo que MyProject tiene actiobnarsherlock.jar (porque lo necesita) o la biblioteca de soporte android correspondiente para compat y que tiene el android-support-v13 (o v4) también …

  1. pulltorefresh no necesita ninguna reference de biblioteca.
  2. pulltorefresh-abs necesita una reference a: pulltorefresh , android-suppport-vX y actiobbarsherlock
  3. MyProject necesita una reference a: pulltorefresh-abs , android-suport-vX y actiobbarsherlock

Por supuesto, tanto android-support como actiobarsherlock podrían sentarse en MyProject y ser exportados (y tomados de allí) por las otras bibliotecas, pero esa es la gestión de proyectos 101;)

Paso 4 ¡Integra! Esto es más fácil, solo siga la Guía de inicio rápido . RECUERDE : en versiones anteriores de la lib, tenía que tener un atacante en una actividad, eso ya no es necesario. Lea la documentation, es muy simple (y mucho más flexible de esta manera).

Espera, ¿qué pasa si no usas ni Sherlock ni Compat ??

No he hecho esto todavía, pero mi conjetura es:

  1. No importe -abs o -compatione con extras . Solo importa pulltorefresh .
  2. Desde su proyecto, pulltorefresh .

Espera … ¿y las importaciones?

Obtener las importaciones correctas es importante para cualquier biblioteca, debes prestar atención y no dejar ciegamente que tu IDE lo haga por ti (o al less verificar siempre lo que estás importando). Te sorprendería ver cuántas "colisiones de nombres" están ahí fuera.

Para proyectos basados ​​en Action Bar Sherlock, las importaciones deberían ser:

 import uk.co.senab.actionbarpulltorefresh.extras.actionbarsherlock.PullToRefreshLayout; import uk.co.senab.actionbarpulltorefresh.library.ActionBarPullToRefresh; import uk.co.senab.actionbarpulltorefresh.library.listeners.OnRefreshListener; 

Para un proyecto puro no sherlock :

 import uk.co.senab.actionbarpulltorefresh.library.ActionBarPullToRefresh; import uk.co.senab.actionbarpulltorefresh.library.listeners.OnRefreshListener; import uk.co.senab.actionbarpulltorefresh.library.PullToRefreshLayout; 

¡¿¡¿¡¿¡¿Donde obtuviste esos?!?!?!?!

Al mirar las muestras , Luke.

Por ejemplo, aquí está para la versión de stock .

El último paso sería sacar provecho … pero dejo eso a usted;)

Si todavía tienes un problema, los chicos son amigables siempre que no hagas preguntas flojas. Siéntase libre de seguir el proyecto y participar en la página de problemas en github .

Buena suerte refrescante!

Yo no uso Gradle, pero todos deberíamos hacerlo, ya que es un salto cualitativo para la tecnología de construcción en el mundo de Java (JVM) (de la introducción de Gradle ). Así es como hacer reference a las bibliotecas de proyectos para PTR v 0.9.3:

  1. Tu proyecto tiene que hacer reference a PullToRefresh aka PTR
  2. PTR tiene que hacer reference a SmoothProgressBar aka SPB , que puedes encontrar aquí, en github
  3. Tanto PTR como SPB deben ser bibliotecas de Android, por lo que debes asegurarte de que la casilla esté marcada (Propiedades -> Android -> IsLibrary)
  4. La parte "complicada": una vez que haya clonado SPB en su equipo local, copie los contenidos de SmoothProgressBar\library\src\main\java en SmoothProgressBar\library\src\main\src (esa es la estructura que ADT espera)
  5. recuerde agregar la biblioteca de soporte a SPB si apunta más bajo que 14

Suponiendo que sepa cómo hacer reference a un proyecto de biblioteca android en eclipse (si no, google), eso es todo lo que necesita hacer.

¡Buena suerte! 🙂

Los desarrolladores / usuarios de git no senior pueden encontrar útil el siguiente enlace (como yo) http://www.rahuljiresal.com/2014/04/actionbar-pull-to-refresh-on-android/

rahuljiresal ha creado un proyecto git que contiene tanto Actionbar-PullToRefresh de Chris Banes como la SmoothProgressBar de reference, todo en uno: https://github.com/rahuljiresal/ActionBar-PullToRefresh

Los pasos descritos anteriormente por Martin es decir
1. Descargar / Clonar proyecto de Git localmente
2. Importar biblioteca PTR en Eclipse
3. Biblioteca de reference PTR de su proyecto
4. Integrar

todavía son válidos, pero todo el process es increíblemente más fácil y plug-and-play.