Cómo importar RecyclerView para Android L-preview


Intentando usar el nuevo RecyclerView de la biblioteca de soporte. He descargado la actualización 20 para la biblioteca de soporte utilizando el SDK Manager.

He añadido el archivo jar a la carpeta libs - y añadido a la ruta de compilación - sin suerte usando RecyclerView.

Intentó usar también la dependencia de gradle de acuerdo con Android Developer's API - no estoy seguro de si este es el lugar correcto para buscar - esta página está relacionada más con AndroidTV:

 com.android.support:recyclerview-v7:20.0.+

No se puede gradle sincronizar el proyecto.

¿Alguna idea?

Author: matiash, 2014-06-27

21 answers

Lo descubrí.

Tendrás que agregar la siguiente dependencia de gradle :

compile 'com.android.support:recyclerview-v7:+'

Otro problema que tuve que compilar fue el compileSdkVersion. Aparentemente tendrás que compilarlo contra android-L

Tu construcción.el archivo gradle debería tener un aspecto similar a este:

apply plugin: 'android'
android {
    compileSdkVersion 'android-L'
    buildToolsVersion '19.1.0'
    [...]
}
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:recyclerview-v7:+'
}
 161
Author: micnoy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-07-04 02:14:24

He creado usando las siguientes líneas y esto funciona para mí.

compile 'com.android.support:appcompat-v7:27.1.1'
compile 'com.android.support:recyclerview-v7:27.1.1'

Para el tutorial completo por favor ver aquí

 72
Author: Gunaseelan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-06-19 04:58:41

Esto funciona para mí:

compile 'com.android.support:recyclerview-v7:21.0.0-rc1'
 9
Author: Andras K,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-06-26 22:07:12

RecyclerView ahora se puede agregar compilando la dependencia de diseño en app gradle:

dependencies {
...
compile 'com.android.support:design:24.0.0'
}
 6
Author: Bryon Nicoson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-08-21 02:41:28

Si ha compilado la versión 22.2.0 del SDK, agregue la siguiente dependencia para recycler view y cardview adicional para el soporte de CardView

// para incluir todo el libarary en el directorio lib
compile fileTree(include: ['*.jar'], dir: 'libs')
// para soporte appcompat
compile 'com.android.support:appcompat-v7:22.2.0'
// para incluir el diseño de soporte de Google (hace posible implementar material design theme a partir de la versión 2.3 y superior)
'compile' com.androide.soporte: diseño:22.2.0'

Para agregar la vista recycler usa la siguiente dependencia
compile 'com.android.support:recyclerview-v7:22.2.0'


Después de eso, haga clic en Build - >rebuild project y listo.

 4
Author: yubaraj poudel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-06-25 19:17:50
compile 'com.android.support:recyclerview-v7:24.2.1'

Esto funciona para mí. Pruébelo.

 3
Author: Dino Sunny,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-09-19 06:59:50

A los pasos que tengo delante solo les falta un paso.

Después de alterar la compilación .gradle (Module: app) y añadiendo las siguientes dependencias:

Compile ' com.androide.soporte: cardview-v7: 21.0.+'
compile ' com.androide.soporte: recyclerview-v7: 21.0.+'

(Añadir cardview si es necesario)

Entonces debe ir a Build > Clean Project para deshacerse de cualquier error

 2
Author: Junior Hazel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-05-10 18:59:42
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.0.3'
compile 'com.android.support:recyclerview-v7:21.0.0'
}

Simplemente haz tus dependencias como las anteriores en build.gradle File, trabajó para mí.

 2
Author: yubaraj poudel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-06-06 11:37:08

En mi caso lo arreglé poniendo compile 'com.android.support:recyclerview-v7:22.0.0' como una dependencia en mi compilación de gradle

(con Android studio v. 1.2.1.1 y todos los sdk actualizado.)

Es realmente molesto cuando los códigos se actualizan tan rápido y el IDE no puede hacer un seguimiento de ellos, y tienes que arreglarlos manualmente, perdiendo tiempo y recursos.

Pero bueno, por fin funciona.

 2
Author: Samuele Bolognini,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-06-09 09:52:37

Incluya la dependencia en la compilación.gradle, y sincroniza el proyecto con los archivos de gradle

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:25.1.0'

    //include the revision no, i.e 25.1.1
    compile 'com.android.support:recyclerview-v7:25.1.1'
}

Incluye la revisión (aquí su 25.1.1) para evitar compilaciones impredecibles, revisa revisiones de bibliotecas

 2
Author: Azzy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-02-08 12:20:04

Usé un pequeño truco para usar RecyclerView en dispositivos más antiguos. Acabo de entrar en mi repositorio m2 local y recogí los archivos fuente de RecyclerView y los puse en mi proyecto.

Puede encontrar el código fuente aquí:

\extras\android\m2repository\com\android\support\recyclerview-v7\21.0.0-rc1\recyclerview-v7-21.0.0-rc1-sources.jar

 1
Author: rekire,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-07-28 06:06:15

Otras respuestas no funcionaron para mí. Tuve que añadir esta línea:

Compile ' com.androide.soporte: recyclerview-v7: 21.0.0 '

 1
Author: Chad Bingham,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-10-18 17:00:50

-Vaya a la parte de DISEÑO en activity_main.xml - En la plataforma de arrastrar y soltar seleccione appCompactivity - In appCompactivity Select RecyclerView - En la selección aparecerá un diálogo click OK - Tu aplicación de proyecto:gradle se actualizará automáticamente

 1
Author: Vishal Singh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-08-04 19:55:52

Usé este que está funcionando para mí. Una cosa debe ser considerar qué versión de appcompat está utilizando. Estoy Usando appcompat-v7:26.+ así que esto está funcionando para mí.

Compile ' com.androide.soporte: recyclerview-v7:26.+'

 1
Author: user3043644,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-11-23 12:37:47

Mis dependencias;

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:appcompat-v7:25.1.0'

    //RecyclerView dependency
    compile 'com.android.support:recyclerview-v7:25.1.0'

    // Instrumentation dependencies use androidTestCompile
    // (as opposed to testCompile for local unit tests run in the JVM)
    androidTestCompile 'junit:junit:4.12'
    androidTestCompile 'com.android.support:support-annotations:25.1.0'
    androidTestCompile 'com.android.support.test:runner:0.5'
    androidTestCompile 'com.android.support.test:rules:0.5'
}

He añadido solo compile 'com.androide.soporte: recyclerview-v7: 25.1.0 ' . Lo importante es agregar la dependencia RecycleView que es como la misma versión que appcompat

 1
Author: Günay Gültekin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-12-01 12:55:19

Una gran manera de importar el RecyclerView en su proyecto es el RecyclerViewLib. Esta es una biblioteca de código abierto que sacó el RecyclerView para que sea seguro y fácil de implementar. Puedes leer la entrada del blog del autor aquí.

Agrega la siguiente línea como dependencia de gradle en tu código:

dependencies {
    compile 'com.twotoasters.RecyclerViewLib:library:1.0.+@aar'
}

Más información sobre cómo incorporar dependencias de gradle:

Bosnia tienes razón en que eso es molesto. Gradle puede parecer complicado, pero lo es extremadamente potente y flexible. Todo se hace en el idioma groovy y aprender el sistema gradle es aprender otro idioma solo para que pueda construir su aplicación para Android. Duele ahora, pero a la larga te encantará.

Echa un vistazo a la compilación.gradle para la misma aplicación. https://github.com/twotoasters/RecyclerViewLib/blob/master/sample/build.gradle Donde hace lo siguiente es donde trae la lib al módulo (también conocida como la aplicación de ejemplo)

compile (project (':library')) {
    exclude group: 'com.android.support', module: 'support-v4' 
}

Presta atención la ubicación de este archivo. Esta no es la construcción de nivel superior.gradle

Debido a que la fuente lib está en el mismo proyecto, es capaz de hacer esto con el simple ':library'. El exclude le dice a la lib que use el soporte v4 de la aplicación de ejemplo. Eso no es necesario, pero es una buena idea. No tienes o quieres tener la fuente de la lib en tu proyecto, así que tienes que apuntar a Internet para ello. En la compilación de tu módulo / app.gradle pondrías esa línea desde el principio de esta respuesta en la misma ubicación. O, si sigue el ejemplo de las muestras, puede reemplazar ':library' por ' com.twotoasters.RecyclerViewLib:library:1.0.+@aar ' y usar las exclusiones.

 0
Author: MinceMan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-09-24 03:51:09
import android.support.v7.widget.RecyclerView;

En Android Studio, la importación no es tan intuitiva como uno esperaría. Trate de importar este bit y ver cómo ayuda!

 0
Author: AlleyOOP,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-03-07 05:41:02

Si alguien todavía tiene este problema, no tiene que cambiar compileSdkVersion, esto simplemente frustra todo el propósito de las bibliotecas de soporte.

En su lugar, use estos en su archivo gradle.build:

compile 'com.android.support:cardview-v7:+'
compile 'com.android.support:recyclerview-v7:+'
compile 'com.android.support:palette-v7:+'`
 0
Author: andrejbroncek,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-09-09 09:24:10

Esto funciona para mí

Definir permiso de internet

 <uses-permission android:name="android.permission.INTERNET" >

Añadir dependencia

compile 'com.squareup.retrofit2:retrofit:2.1.0'
    compile 'com.google.code.gson:gson:2.6.2'
    compile 'com.squareup.retrofit2:converter-gson:2.1.0'
    compile 'com.google.code.gson:gson:2.6.2'
    compile 'com.squareup.retrofit2:converter-gson:2.1.0'
    compile 'com.squareup.okhttp3:logging-interceptor:3.4.1'
    compile 'com.squareup.okhttp3:okhttp:3.4.1'
    compile 'com.squareup.retrofit2:retrofit:2.1.0'
    compile ('com.squareup.retrofit2:converter-simplexml:2.1.0'){
        exclude group: 'stax', module: 'stax-api'
        exclude group: 'stax', module: 'stax'
        exclude group: 'xpp3', module: 'xpp3'
    }

En la Actividad Principal

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;
import android.widget.Toast;

import java.util.List;

import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import retrofit2.Retrofit;
import retrofit2.converter.simplexml.SimpleXmlConverterFactory;

public class MainActivity extends AppCompatActivity {
    private BreakfastMenu breakfastMenu;
    List<BreakfastMenu> list;
    TextView responseText;
    APIInterface apiInterface;
    String name;
    String price;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        responseText=(TextView)findViewById(R.id.reponseText);
        apiInterface = APIClient.getClient().create(APIInterface.class);


        /**
         GET List Resources
         **/
        Call<BreakfastMenu> call = apiInterface.getBreakfastMenu();
        call.enqueue(new Callback<BreakfastMenu>() {
            @Override
            public void onResponse(Call<BreakfastMenu> call, Response<BreakfastMenu> response) {
               Log.d("TAG", response.code() + "");

                String displayResponse = "";
                BreakfastMenu resource = response.body();
                System.out.println(displayResponse+"display response   ");

                for (Food food : resource.getFoodList())
                {
                    name=food.getName();
                    price=food.getPrice();
                    System.out.println(name+price+"=========================================");
                    displayResponse += food.getName() + " " + food.getPrice()+"\n"+"\n";
                    Toast.makeText(MainActivity.this,name+price,Toast.LENGTH_LONG).show();
                }
                responseText.setText(displayResponse);

            }

            @Override
            public void onFailure(Call<BreakfastMenu> call, Throwable t) {
                call.cancel();
            }
        });

    }
}

Hacer APIClient.java class

import okhttp3.OkHttpClient;
import okhttp3.logging.HttpLoggingInterceptor;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;
import retrofit2.converter.simplexml.SimpleXmlConverterFactory;

class APIClient {

    private static Retrofit retrofit = null;

    static Retrofit getClient() {

        HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
        interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
        OkHttpClient client = new OkHttpClient.Builder().addInterceptor(interceptor).build();


        retrofit = new Retrofit.Builder()
                .baseUrl("https://www.w3schools.com/")
                .addConverterFactory(SimpleXmlConverterFactory.create())
                .build();



        return retrofit;
    }

}

    enter code here

Make APIInterface.java

import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.Headers;
import retrofit2.http.POST;
import retrofit2.http.Query;

interface APIInterface {

    @GET("xml/simple.xml")
    @Headers({"Accept: application/xml",
            "User-Agent: Retrofit-Sample-App"})
    Call<BreakfastMenu> getBreakfastMenu();
}

In BreakfastMenu.java

import org.simpleframework.xml.ElementList;
import org.simpleframework.xml.Root;

import java.util.List;

@Root(name = "breakfast_menu")
public class BreakfastMenu
{

    @ElementList(inline = true)
    private List<Food> foodList;

    public BreakfastMenu()
    {
    }

    public List<Food> getFoodList()
    {
        return foodList;
    }

    public void setFoodList(List<Food> foodList)
    {
        this.foodList = foodList;
    }
}

Hacer Comida.java

import org.simpleframework.xml.Element;
import org.simpleframework.xml.Root;

@Root(name = "food")
public class Food
{

    @Element(name = "name")
    private String name;

    @Element(name = "price")
    private String price;

    @Element(name = "description")
    private String description;

    @Element(name = "calories")
    private String calories;

    public Food()
    {
    }

    public String getName()
    {
        return name;
    }

    public void setName(String name)
    {
        this.name = name;
    }

    public String getPrice()
    {
        return price;
    }

    public void setPrice(String price)
    {
        this.price = price;
    }

    public String getDescription()
    {
        return description;
    }

    public void setDescription(String description)
    {
        this.description = description;
    }

    public String getCalories()
    {
        return calories;
    }

    public void setCalories(String calories)
    {
        this.calories = calories;
    }
}

En activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

        <TextView
            android:id="@+id/reponseText"
            android:layout_width="match_parent"
            android:layout_height="600dp"
          />


</Linear Layout>
 0
Author: Sakshi Mehta,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-03-15 06:29:40

Solo una actualización:

'compile' está obsoleto ahora; ha sido reemplazado por 'implementation' y 'api'. Creo que se eliminará a finales de 2018. Para más información ver: http://d.android.com/r/tools/update-dependency-configurations.html

También todos los com.androide.las bibliotecas de soporte deben usar exactamente la misma especificación de versión; además, las bibliotecas de soporte como appcompat-v7 y recyclerview-v7 no deben usar una versión diferente de la compileSdkVersion.

 0
Author: Abdul,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-09-09 12:18:10

Si utiliza la versión actualizada o 2018 para Android Studio...

compile 'com.android.support:recyclerview-v7:+'

Le dará un error con el siguiente mensaje "La configuración' compile 'es obsoleta y ha sido reemplazada por' implementation 'y'api'. Se eliminará a finales de 2018."

Intenta usar esto

implementation 'com.android.support:recyclerview-v7:+'
 0
Author: TwistenTiger,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-10-06 08:09:40