Intereting Posts
Сигналы управления Bluetooth (DTR, DSR, RTS, CTS) на Android Как выйти из полноэкранного режима в эмуляторе Android Не удалось разрешить импорт из внешних зависимостей в Android Studio 2.0 Preview 5 + Preview 6 Проверка наличия порта сервера с Android Слушать Услуги и AdMob: Ожидаемые 4132500, но найдено 4242000 Форматировать сообщение об исключении, чтобы содержать весь стек в Google Analytics для Android? Android onTaskRemoved (), не вызываемый на mi (xiomi) Android: загрузите файл с сервера и покажите ход загрузки на панели уведомлений с помощью AsyncTask Переписывание Java-кода в JS – создание звука из байтов? Ошибка при обновлении Android Studio Android: Как предотвратить масштабирование изображения в ImageView или ImageButton? Как заставить NFC работать на Android с помощью Qt 5.6 Какова роль content_main.xml в android studio 1.4? Как отобразить определенное значение в строке поиска по умолчанию? Дополнительные действия по восстановлению активности

Android Pull-to-Refresh с фрагментом ListView и пользовательским адаптером ListView

Я построил свой проект с использованием параметров запуска Android Studio (автоматически создает action bar с вкладками), поэтому для меня создается бит. Однако я реализовал list-view fragment для каждой из вкладок, в которых используются пользовательские adapters .

У меня возникли проблемы с добавлением сборника для обновления от Chris Bane . Может быть, я импортирую это неправильно? Я довольно новичок в разработке Android и особенно с этим новым материалом Gradle.

Я импортирую репозиторий github в файле build.gradle здесь:

 apply plugin: 'android' android { compileSdkVersion 19 buildToolsVersion "19.0.1" defaultConfig { minSdkVersion 14 targetSdkVersion 19 versionCode 1 versionName "1.0" } buildTypes { release { runProguard false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' } } } dependencies { compile 'com.android.support:support-v4:19.0.1' compile 'com.android.support:appcompat-v7:19.0.1' compile 'com.github.chrisbanes.actionbarpulltorefresh:extra-abc:+' } 

Все минус minSDKVersion и последняя компиляция в зависимостях были предварительно сгенерированы при создании моего проекта. Этот файл build.gradle является тем, который находится в моей папке `/ app.

Gradle будет синхронизироваться правильно, и я увижу файлы из gb-файла в моей папке .idea в корне проекта.

Здесь я смущаюсь:

В github repo «быстрый старт» говорится:

Первое, что вам нужно сделать, это обернуть обновленный вид в PullToRefreshLayout:

С примером кода выполните что-то вроде этого:

 <uk.co.senab.actionbarpulltorefresh.extras.actionbarcompat.PullToRefreshLayout> <listview/> </uk.co.senab.actionbarpulltorefresh.extras.actionbarcompat.PullToRefreshLayout> 

Является ли uk.co.senab.actionbarpulltorefresh.extras именем моего проекта, поэтому com.lucaapp.app ?

Вот мой XML для моего ListFragment, где вы увидите мое замешательство:

 <?xml version="1.0" encoding="utf-8"?> <com.lucaapp.app.PullToRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/ptr_layout" > <ListView android:id="@android:id/list" android:layout_width="match_parent" android:layout_height="match_parent" android:divider="#b5b5b5" android:dividerHeight="1dp" android:listSelector="@drawable/list_selector" /> <TextView android:id="@android:id/empty" android:layout_width="fill_parent" android:layout_height="fill_parent" android:text="No Events" /> </com.lucaapp.app.PullToRefreshLayout> 1 <?xml version="1.0" encoding="utf-8"?> <com.lucaapp.app.PullToRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/ptr_layout" > <ListView android:id="@android:id/list" android:layout_width="match_parent" android:layout_height="match_parent" android:divider="#b5b5b5" android:dividerHeight="1dp" android:listSelector="@drawable/list_selector" /> <TextView android:id="@android:id/empty" android:layout_width="fill_parent" android:layout_height="fill_parent" android:text="No Events" /> </com.lucaapp.app.PullToRefreshLayout> 

Это не даст мне никаких ошибок сразу, пока я не попытаюсь реализовать код из quick start guide по quick start guide в моем классе фрагментов. Я получаю ошибку Cannot Resolve Symbol пытающуюся импортировать методы github repo.

Я пробовал следующее, что делает импорт красным с cannot resolve symbol ошибку cannot resolve symbol :

 import com.lucapp.app.PullToRefreshAttacher; import com.lucapp.app.PullToRefreshLayout; import uk.co.senab.actionbarpulltorefresh.extras.actionbarcompat.PullToRefreshAttacher; 

Я предполагаю, что проблемы, с которыми я столкнулся, – это просто отсутствие знаний об импорте библиотек (никогда не делал этого раньше), поэтому, пожалуйста, расскажите мне, если это очевидное решение. Надеюсь, я предоставил достаточно информации, чтобы помочь решить эту проблему.

Вы пытались следовать этому уроку от Криса Банеса: https://github.com/chrisbanes/ActionBar-PullToRefresh/wiki/QuickStart-ABS ?

Это руководство содержит все шаги, начиная с build.gradle и заканчивая фрагментами кода.

Единственное отличие: учебник предназначен для ScrollView (а не ListView, как вы пожелаете). Но не бойтесь. Просто замените ScrollView на ListView, и все будет в порядке.

UPDATE: вы должны увидеть на этом блоке особенно:

 <uk.co.senab.actionbarpulltorefresh.extras.actionbarsherlock.PullToRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/ptr_layout" android:layout_width="match_parent" android:layout_height="match_parent"> <!-- Your content, here we're using a ScrollView --> <ScrollView android:layout_width="match_parent" android:layout_height="match_parent"> </ScrollView> </uk.co.senab.actionbarpulltorefresh.extras.actionbarsherlock.PullToRefreshLayout> 

Вам не следует использовать com.lucaapp.app.PullToRefreshLayout вместо uk.co.senab.actionbarpulltorefresh.extras.actionbarsherlock.PullToRefreshLayout

Теперь андроид представил новую простую фальсификацию Swipe для обновления макета. Пожалуйста, обратитесь на сайт разработчика и простой пример