Как импортировать RecyclerView для Android L-preview



попытка использовать новый RecyclerView из библиотеки поддержки. Я загрузил обновление 20 для библиотеки поддержки с помощью диспетчера SDK.



Я добавил файл jar в папку libs - и добавил, чтобы построить путь - не повезло с помощью RecyclerView.



пытался использовать также зависимость gradle в соответствии с API разработчика Android - Не уверен, что это правильное место для поиска - эта страница больше связана с AndroidTV :



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


не удается выполнить gradle синхронизацию проекта.



какие идеи?

863   21  

21 ответов:

разобрался.

вам нужно будет добавить следующую зависимость gradle:

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

еще одна проблема, которую я собирал, была compileSdkVersion. По-видимому, вам придется скомпилировать его против android-L

ваши построения.файл 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:+'
}

Я создал, используя следующие строки, и это работает для меня.

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

полный учебник см. В разделе здесь

это работает для меня:

compile 'com.android.support:recyclerview-v7:21.0.0-rc1'

RecyclerView теперь можно добавить путем компиляции зависимости дизайна в приложении gradle:

dependencies {
...
compile 'com.android.support:design:24.0.0'
}

Если у вас есть скомпилированные версии SDK 22.2.0 затем добавить ниже зависимостей для просмотра переработчик и cardview дополнительной поддержки cardView

//для включения всех библиотек в каталог lib
compile fileTree(include: ['*.jar'], dir: 'libs')
// для поддержки appcompat
compile 'com.android.support:appcompat-v7:22.2.0'
// для включения дизайна поддержки google (это позволяет реализовать тему material design от 2.3 и выше)
`составлять - com.андроид.поддержка:дизайн:22.2.0'

для добавления вида recycler используйте следующую зависимость
compile 'com.android.support:recyclerview-v7:22.2.0'


После этого нажмите на Build - >rebuild project и все готово.

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

это работает для меня. Попробовать его.

шаги передо мной просто не хватает одного шага.

после изменения построить.gradle (модуль: приложение) и добавление следующих зависимостей:

compile ' com.андроид.поддержка: cardview-v7: 21.0.+ '
компиляции в COM.андроид.поддержка: recyclerview-v7: 21.0.+ '

(при необходимости добавьте cardview)

вы должны тогда должны пойти в Build > Clean Project чтобы избавиться от любых ошибок

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

просто сделайте ваши зависимости, как показано выше в сборке.файл gradle, работал на меня.

в моем случае я исправил это, поставив compile 'com.android.support:recyclerview-v7:22.0.0' как зависимость в моем gradle build

(С Android studio V. 1.2.1.1 и все sdk обновлены.)

это действительно раздражает, когда коды обновляются так быстро, и IDE не может отслеживать их, и вы должны вручную исправить их, тратя время и ресурсы.

но хорошо, наконец-то он работает.

включить зависимость в сборку.gradle, и синхронизировать проект с файлами 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'
}

включите ревизию (здесь ее 25.1.1), чтобы избежать непредсказуемых сборок, проверьте изменения библиотека

Я использовал небольшой хак, чтобы использовать RecyclerView на старых устройствах. Я просто зашел в свой локальный репозиторий m2 и взял исходные файлы RecyclerView и поместил их в свой проект.

вы можете найти исходный код здесь:

\extras\android\m2repository\com\android\support\recyclerview-v7\21.0.0-rc1\recyclerview-v7-21.0.0-rc1-sources.банку

другие ответы не работает для меня. Я должен был добавить эту строку:

compile ' com.андроид.поддержка: recyclerview-v7: 21.0.0'

-перейти к конструкция входит в activity_main.xml -В поддоне перетаскивания выберите appCompactivity - В appCompactivity выберите RecyclerView -При выборе появится диалоговое окно нажмите ОК - Ваш проект приложение: gradle будет автоматически обновляться

Я использовал этот один для меня. Одну вещь нужно учесть, что какой совместимости приложений версии, которую вы используете. Я использую appcompat-v7: 26.+ так что это работает для меня.

compile ' com.андроид.поддержка: recyclerview-v7: 26.+ '

мои зависимостей;

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

Я добавил только compile ' com.андроид.поддержка: recyclerview-v7: 25.1.0'. Важно добавить RecycleView зависимость, которая является как тоже вариант как appcompat

отличный способ импортировать RecyclerView в ваш проект-это RecyclerViewLib. Это библиотека с открытым исходным кодом, которая вытащила RecyclerView, чтобы сделать его безопасным и простым в реализации. Вы можете прочитать сообщение в блоге автора здесь.

добавить следующую строку в качестве зависимости gradle в коде:

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

дополнительная информация о том, как ввести зависимости gradle:

Босния вы правы насчет того, что это раздражает. Gradle в мае показаться сложным, но это чрезвычайно мощный и гибкий. Все делается на языке groovy, и изучение системы gradle изучает другой язык, чтобы вы могли создать свое приложение для Android. Сейчас это больно, но в конечном счете тебе понравится.

проверить сборку.gradle для того же приложения. https://github.com/twotoasters/RecyclerViewLib/blob/master/sample/build.gradle где он делает следующее, где он приносит lib в модуль (он же образец приложение)

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

обратите внимание на расположение этого файла. Это не сборка верхнего уровня.gradle

поскольку источник lib находится в том же проекте, он может сделать это с помощью простого ':library'. Элемент exclude говорит lib использовать поддержку V4 образца приложения. Это не обязательно, но это хорошая идея. У вас нет или вы не хотите иметь источник lib в своем проекте, поэтому вам нужно указать на интернет для него. В сборке вашего модуля / приложения.Gradle в, вы должны положить, что линия с начала этого ответа в том же месте. Или, если следовать примеру samples, вы можете заменить ':library' С ' com.twotoasters.RecyclerViewLib:library:1.0.+@aar ' и использовать исключает.

import android.support.v7.widget.RecyclerView;

в Android Studio импорт не так интуитивно понятен, как можно было бы надеяться. Попробуйте импортировать этот бит и посмотреть, как это помогает!

Если у кого - то еще есть эта проблема-вам не нужно менять compileSdkVersion, это просто ищет поддержки библиотек.

вместо этого используйте их в своем gradle.build file:

compile 'com.android.support:cardview-v7:+'
compile 'com.android.support:recyclerview-v7:+'
compile 'com.android.support:palette-v7:+'`

это работает для меня

определите разрешение интернета

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

Сделать Еду.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>

просто обновление:

'compile' теперь устарел; он был заменен на 'implementation' и 'api'. Он будет удален в конце 2018 года, я считаю. Для получения дополнительной информации см.: http://d.android.com/r/tools/update-dependency-configurations.html

также все com.андроид.библиотеки поддержки должны использовать точно такую же спецификацию версии; кроме того, библиотеки поддержки, такие как appcompat-v7 и recyclerview-v7 не должны использовать другую версию, чем the compileSdkVersion.

Если вы используете обновленную или 2018 версию для Android Studio...

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

даст вам сообщение об ошибке со следующим сообщением "Конфигурации 'компиляции' является устаревшим и был заменен реализации и АПИ. Он будет снят в конце 2018 года."

попробуйте использовать этот

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

Comments

    Ничего не найдено.