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?
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:+'
}
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
Cela fonctionne pour moi:
compile 'com.Android.support:recyclerview-v7:21.0.0-rc1'
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'
}
compile 'com.Android.support:recyclerview-v7:24.2.1'
Cela fonctionne pour moi ... Essayez-le.
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.
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
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.
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.
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.+'
implementation 'com.Android.support:appcompat-v7:28.0.0'
implementation 'com.Android.support:recyclerview-v7:28.0.0'
Ci-dessus fonctionne pour moi dansbuild.gradle
file
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
-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.
D'autres réponses n'ont pas fonctionné pour moi. Je devais ajouter cette ligne:
compiler 'com.Android.support:recyclerview-v7:21.0.0'
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
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:+'
Ç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>
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:+'`
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!
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.
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.