web-dev-qa-db-fra.com

Comment importer RecyclerView pour Android L-preview

Essayer d'utiliser le nouveau RecyclerView à partir de la bibliothèque de support. J'ai téléchargé la mise à jour pour la bibliothèque de support à l'aide du gestionnaire de SDK.

J'ai ajouté le fichier jar dans le dossier libs - et ajouté pour créer le chemin d'accès - aucune chance d'utiliser RecyclerView.

J'ai essayé d'utiliser également la dépendance de gradle selon l'API du développeur Android - ne sais pas si c'est le bon endroit pour regarder - cette page est davantage liée à AndroidTV:

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

Impossible de synchroniser le projet.

Des idées?

86
micnoy

Deviner.

Vous devrez ajouter la dépendance de niveau suivante:

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

un autre problème que j'ai compilé était le compileSdkVersion. Apparemment, vous devrez le compiler avec Android-L

Votre fichier build.gradle devrait ressembler à ceci:

apply plugin: 'Android'
Android {
    compileSdkVersion 'Android-L'
    buildToolsVersion '19.1.0'
    [...]
}
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.Android.support:recyclerview-v7:+'
}
163
micnoy

J'ai créé en utilisant les lignes suivantes et cela fonctionne pour moi.

implementation 'com.Android.support:appcompat-v7:28.0.0'
implementation 'com.Android.support:recyclerview-v7:28.0.0'

Pour le tutoriel complet s'il vous plaît voir ici

75
Gunaseelan

Cela fonctionne pour moi: 

compile 'com.Android.support:recyclerview-v7:21.0.0-rc1'
9
Andras K

RecyclerView peut maintenant être ajouté en compilant les dépendances de conception dans la palette d'applications:

dependencies {
...
compile 'com.Android.support:design:24.0.0'
}
7
Bryon Nicoson
compile 'com.Android.support:recyclerview-v7:24.2.1'

Cela fonctionne pour moi ... Essayez-le.

3
Dino Sunny

dans mon cas, je l'ai corrigé en mettant compile 'com.Android.support:recyclerview-v7:22.0.0' comme dépendance dans la construction de mon diplôme

(avec Android studio v. 1.2.1.1 et tous les sdk mis à jour.)

C'est vraiment ennuyeux lorsque les codes sont mis à jour si rapidement et que le IDE ne peut pas les garder, et vous devez les corriger manuellement, ce qui vous fait perdre du temps et des ressources.

Mais bon, enfin ça marche.

2

inclure la dépendance dans le build.gradle et synchroniser le projet avec les fichiers gradle

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

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

Incluez la révision (ici sa version 25.1.1) pour éviter les constructions imprévisibles, vérifiez les révisions de la bibliothèque

2
Azzy

Les étapes devant moi manquent juste une étape.

Après avoir modifié le build.gradle (Module: app) et ajouté les dépendances suivantes:

compiler 'com.Android.support:cardview-v7:21.0.+'
compiler 'com.Android.support:recyclerview-v7:21.0.+'

(Ajouter cardview si nécessaire)

Vous devez ensuite aller dans Construire> Nettoyer le projet pour supprimer les erreurs éventuelles.

2
Junior Hazel
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'
}

Faites juste vos dépendances comme ci-dessus dans le fichier build.gradle, a travaillé pour moi.

2
yubaraj poudel

J'ai utilisé celui-ci travaille pour moi. Une chose à considérer est la version appcompat que vous utilisez. J'utilise appcompat-v7:26.+ donc cela fonctionne pour moi.

implementation 'com.Android.support:recyclerview-v7:26.+'
1
Vicky Pramanik
implementation 'com.Android.support:appcompat-v7:28.0.0'

implementation 'com.Android.support:recyclerview-v7:28.0.0'

Ci-dessus fonctionne pour moi dansbuild.gradlefile

1
Vaibhav Thakur

J'ai utilisé un petit hack pour utiliser le RecyclerView sur des appareils plus anciens. Je suis simplement allé dans mon référentiel m2 local, j'ai récupéré les fichiers source RecyclerView et les ai intégrés à mon projet.

Vous pouvez trouver le code source ici:

<Android-SDK>\extras\Android\m2repository\com\Android\support\recyclerview-v7\21.0.0-rc1\recyclerview-v7-21.0.0-rc1-sources.jar

1
rekire

-Allez auDESIGNpart in activity_main.xml - Dans la palette à glissière, sélectionnez appCompactivity - Dans appCompactivity Select RecyclerView -Sans sélection, une boîte de dialogue apparaît. Cliquez surOK- Votre application de projet: gradle sera automatiquement mise à jour.

1
Vishal Singh

D'autres réponses n'ont pas fonctionné pour moi. Je devais ajouter cette ligne:

compiler 'com.Android.support:recyclerview-v7:21.0.0'

1
Chad Bingham

Mes dépendances;

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'
}

J'ai ajouté seulement compiler 'com.Android.support:recyclerview-v7:25.1.0' . L'important est d'ajouter la dépendance RecycleView sous la forme même version as appcompat

1
Günay Gültekin

Si vous utilisez la version mise à jour ou 2018 pour Android Studio ...

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

vous donnera une erreur avec le message suivant "Configuration 'compiler' est obsolète et a été remplacé par 'implementation' et 'api' . Il sera supprimé à la fin de 2018."

Essayez d'utiliser ceci 

implementation 'com.Android.support:recyclerview-v7:+'
1
TwistenTiger

Ça marche pour moi

Définir la permission Internet

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

Ajouter une dépendance

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'
    }

Dans l'activité principale

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();
            }
        });

    }
}

Faire la classe APIClient.Java

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;
    }
}

Faire de la nourriture.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;
    }
}

Dans 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
Sakshi Mehta

Si quelqu'un a toujours ce problème - vous n'avez pas à changer compileSdkVersion, cela va tout simplement à l'encontre de l'objectif des bibliothèques de support. 

À la place, utilisez-les dans votre fichier gradle.build:

compile 'com.Android.support:cardview-v7:+'
compile 'com.Android.support:recyclerview-v7:+'
compile 'com.Android.support:palette-v7:+'`
0
andrejbroncek
import Android.support.v7.widget.RecyclerView;

Dans Android Studio, l'importation n'est pas aussi intuitive qu'on pourrait l'espérer. Essayez d'importer ce bit et voyez comment cela aide!

0
AlleyOOP

Le RecyclerViewLib est un excellent moyen d'importer RecyclerView dans votre projet. Ceci est une bibliothèque open source qui a extrait le RecyclerView pour le rendre sûr et facile à mettre en œuvre. Vous pouvez lire le blog de l'auteur ici .

Ajoutez la ligne suivante en tant que dépendance de niveau dans votre code:

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

Plus d'informations sur la manière d'introduire des dépendances de niveaux:

Vous avez raison de dire que la Bosnie est agaçante. Gradle peut sembler compliqué, mais il est extrêmement puissant et flexible. Tout est fait dans le groove linguistique et apprendre le système de diplômes, c'est apprendre une autre langue pour pouvoir créer votre application Android. Ça fait mal maintenant, mais à long terme, vous allez adorer. 

Consultez le build.gradle pour la même application. https://github.com/twotoasters/RecyclerViewLib/blob/master/sample/build.gradle Ce qui suit est où il apporte la lib dans le module 

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

Faites attention à l'emplacement de ce fichier. Ce n'est pas le build de niveau supérieur

Comme la source de lib est dans le même projet, elle est capable de le faire avec le simple ':library'. exclude indique à la bibliothèque d'utiliser le support v4 de l'exemple d'application. Ce n'est pas nécessaire mais c'est une bonne idée. Vous n'avez pas ou ne voulez pas avoir la source de la bibliothèque dans votre projet, vous devez donc pointer sur Internet pour cela. Dans build.gradle de votre module/app, vous placeriez cette ligne depuis le début de cette réponse au même endroit. Ou, si vous suivez les exemples, vous pouvez remplacer ':library' par ' com.twotoasters.RecyclerViewLib:library:1.0.+@aar ' et utiliser le excludes.

0
MinceMan

Juste une mise à jour:

'compiler' est obsolète maintenant; il a été remplacé par «implementation» et «api» . Il sera supprimé fin 2018 je crois. Pour plus d'informations, voir: http://d.Android.com/r/tools/update-dependency-configurations.html

De plus, toutes les bibliothèques com.Android.support doivent utiliser exactement la même spécification de version. En outre, les bibliothèques de support telles que appcompat-v7 et recyclerview-v7 ne doivent pas utiliser une version différente de compileSdkVersion.

0
Abdul