Как импортировать RecyclerView для Android L-preview
Попытка использовать новый RecyclerView из библиотеки поддержки. Я загрузил обновление 20 для библиотеки поддержки с помощью менеджера SDK.
Я добавил файл jar в папку libs и добавлен в путь сборки - вам не удастся использовать RecyclerView.
Пытался использовать также зависимость gradle в соответствии с Android Developer API - не уверен, что это подходящее место для поиска - эта страница больше похожа на AndroidTV
com.android.support:recyclerview-v7:20.0.+
Не удается gradle синхронизировать проект.
Любые идеи?
Ответы
Ответ 1
Я создал, используя следующие строки, и это работает для меня.
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:recyclerview-v7:28.0.0'
для AndroidX
implementation 'androidx.recyclerview:recyclerview:1.1.0-beta04'
implementation 'androidx.cardview:cardview:1.0.0'
Полное руководство смотрите здесь .
Ответ 2
Выяснил это.
Вам нужно будет добавить следующую зависимость gradle:
compile 'com.android.support:recyclerview-v7:+'
Другая проблема, которую я составлял, - compileSdkVersion
. Очевидно, вам придется скомпилировать его с android-L
Ваш файл build.gradle должен выглядеть примерно так:
apply plugin: 'android'
android {
compileSdkVersion 'android-L'
buildToolsVersion '19.1.0'
[...]
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:recyclerview-v7:+'
}
Ответ 3
Это работает для меня:
compile 'com.android.support:recyclerview-v7:21.0.0-rc1'
Ответ 4
RecyclerView теперь можно добавить путем компиляции зависимости проекта от приложения gradle:
dependencies {
...
compile 'com.android.support:design:24.0.0'
}
Ответ 5
Если у вас есть скомпилированная версия SDK версии 22.2.0, добавьте ниже зависимость для просмотра ресайклеров и дополнительных карт для поддержки cardView
// для включения всех libarary в каталог lib
compile fileTree(include: ['*.jar'], dir: 'libs')
// для поддержки appcomp
compile 'com.android.support:appcompat-v7:22.2.0'
// для включения дизайна поддержки Google (это позволяет реализовать тему дизайна материалов от 2,3 и выше)
`compile 'com.android.support:design:22.2.0'
для добавления вида повторного использования используется следующая зависимость
compile 'com.android.support:recyclerview-v7:22.2.0'
После этого нажмите "Build- > rebuild project" и вы закончите.
Ответ 6
compile 'com.android.support:recyclerview-v7:24.2.1'
Это работает для меня.
Попробуйте.
Ответ 7
Перечисленные мной шаги просто пропущены на один шаг.
После изменения build.gradle (Module: app) и добавления следующих зависимостей:
compile 'com.android.support:cardview-v7:21.0.+'
msgstr "
(при необходимости добавьте карту)
Затем вы должны перейти в Сборкa > Очистить проект, чтобы избавиться от каких-либо ошибок
Ответ 8
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'
}
Просто сделайте свои зависимости, как указано выше, в файле build.gradle, работал у меня.
Ответ 9
в моем случае я исправил его, поместив compile 'com.android.support:recyclerview-v7:22.0.0'
в качестве зависимости в мою конструкцию gradle
(с Android studio v. 1.2.1.1 и все sdk обновлены.)
Это очень раздражает, когда коды обновляются так быстро, и среда IDE не может их отслеживать, и вам приходится вручную исправлять их, тратя время и ресурсы.
Но хорошо, наконец, он работает.
Ответ 10
включить зависимость в build.gradle
и синхронизировать проект с файлами 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'
}
Включите ревизию (здесь ее 25.1.1), чтобы избежать непредсказуемых сборок, проверьте ревизии библиотеки
Ответ 11
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:recyclerview-v7:28.0.0'
Выше работает у меня в файле build.gradle
Ответ 12
Я использовал небольшой взлом для использования RecyclerView на старых устройствах. Я просто зашел в мой локальный репозиторий m2 и взял исходные файлы RecyclerView и поместил их в свой проект.
Здесь вы можете найти исходный код:
< Android-SDK > \Extras\Android\m2repository\ком\Android\\ поддержки recyclerview-V7\21.0.0-rc1\recyclerview-v7-21.0.0-rc1-sources.jar
Ответ 13
Другие ответы мне не помогли. Мне пришлось добавить эту строку:
compile 'com.android.support:recyclerview-v7:21.0.0'
Ответ 14
-Go для DESIGN в activity_main.xml
-В области подтяжки перетаскивания выберите appCompactivity
-In appCompactivity Выберите RecyclerView
-On В диалоговом окне появится диалоговое окно ОК
-Ваш проект проекта: gradle будет автоматически обновляться
Ответ 15
Я использовал это работает для меня. Нужно учитывать, какую версию appcompat
вы используете. Я использую appcompat-v7:26.+
так что это работает для меня.
implementation 'com.android.support:recyclerview-v7:26.+'
Ответ 16
Мои зависимости;
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'
}
Я добавил только скомпилировать 'com.android.support:recyclerview-v7:25.1.0'. Важно добавить зависимость RecycleView, которая соответствует той же версии как appcompat
Ответ 17
Если вы используете обновленную версию 2018 для Android Studio...
compile 'com.android.support:recyclerview-v7:+'
выдает ошибку со следующим сообщением "Конфигурация" compile "устарела и была заменена на" реализация "и" api ". Она будет удалена в конце 2018 года".
Попробуйте использовать это
implementation 'com.android.support:recyclerview-v7:+'
Ответ 18
Отличным способом импорта RecyclerView в ваш проект является RecyclerViewLib. Это библиотека с открытым исходным кодом, которая вытащила RecyclerView, чтобы сделать ее безопасной и простой в использовании. Вы можете прочитать сообщение в блоге автора здесь.
Добавьте следующую строку в качестве зависимости gradle в вашем коде:
dependencies {
compile 'com.twotoasters.RecyclerViewLib:library:[email protected]'
}
Дополнительная информация о том, как включить gradle зависимости:
Босния, ты прав, что это раздражает. gradle может показаться сложным, но он чрезвычайно мощный и гибкий. Все делается на языке groovy, и изучение системы gradle изучает другой язык, чтобы вы могли создавать свое приложение для Android. Сейчас больно, но в конечном итоге вам это понравится.
Проверьте build.gradle для того же приложения. https://github.com/twotoasters/RecyclerViewLib/blob/master/sample/build.gradle Где он делает следующее: он вставляет lib в модуль (ака пример приложения)
compile (project (':library')) {
exclude group: 'com.android.support', module: 'support-v4'
}
Обратите внимание на местоположение этого файла. Это не верхний уровень build.gradle
Поскольку источник lib находится в одном проекте, он может сделать это с помощью простого ':library'
. exclude
сообщает lib использовать примерную поддержку приложения v4. Это не обязательно, но это хорошая идея. У вас нет или нет источника lib в вашем проекте, поэтому вы должны указать на него в Интернете. В вашем модуле/приложении build.gradle вы поместите эту строку с начала этого ответа в том же месте. Или, если следовать примеру примеров, вы можете заменить ':library'
на ' com.twotoasters.RecyclerViewLib:library:[email protected] '
и использовать исключение.
Ответ 19
import android.support.v7.widget.RecyclerView;
В Android Studio импорт не столь интуитивно понятен, как хотелось бы. Попробуйте импортировать этот бит и посмотреть, как он помогает!
Ответ 20
Если у кого-то еще есть эта проблема - вам не нужно менять compileSdkVersion
, это просто побеждает всю цель библиотек поддержки.
Вместо этого используйте их в файле gradle.build
:
compile 'com.android.support:cardview-v7:+'
compile 'com.android.support:recyclerview-v7:+'
compile 'com.android.support:palette-v7:+'`
Ответ 21
Это работает для меня
Определить интернет-разрешение
<uses-permission android:name="android.permission.INTERNET" >
Добавить зависимость
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'
}
В основной деятельности
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();
}
});
}
}
Сделать класс 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;
}
}
Сделать Food.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;
}
}
В 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>
Ответ 22
Просто обновление:
"compile" устарел сейчас; он был заменен на "реализацию" и "API". Я думаю, он будет удален в конце 2018 года. Для получения дополнительной информации см.: http://d.android.com/r/tools/update-dependency-configurations.html
Также все библиотеки com.android.support должны использовать одну и ту же спецификацию версии; Кроме того, библиотеки поддержки, такие как appcompat-v7 и recyclerview-v7, не должны использовать версию, отличную от compileSdkVersion.