Форум программистов, компьютерный форум CyberForum.ru

Retrofit 2 + RxAndroid + VkApi. Как возвратить ответ? - Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android Программа для сайта доставки суши http://www.cyberforum.ru/android-dev/thread1828842.html
Всем привет. Ребят,помогите. Нужно написать приложение с нуля,для сайта доставки суши,но знаний в данной области совсем нет. С чего начать? Может есть какие-то пошаговые инструкции,ещё что-либо.
Android Посоветуйте монетизацию игры Всем привет! Я начинающий разработчик игр под Андроид. Сделал свою небольшую игру и проблема возникла в монетизации. Сначала я сделал там рекламу Admob. Но потом когда я понял что вывести деньги я от туда никак не смогу (в связи со страной)я начал искать других рекламодателей с удобным выводом денег (web-money), но так ничего не нашел:cry:.Хотелось бы так, чтобы можно было настроить рекламу без... http://www.cyberforum.ru/android-dev/thread1828841.html
Поднять элементы когда клавиатура выезжает Android
Привет, не поднимает элементы когда клавиатура выкатывает (Клавиатура закрывает кнопку) 1. В манифесте прописывал android:windowSoftInputMode="adjustResize" //так android:windowSoftInputMode="adjustPan" // и так android:windowSoftInputMode="adjustResize|adjustPan" // и вот так 2. Вот так выглядит XML: (Пробовал и в linerlayuot пихать, и фокусы ставить )
Программное заполнение Navigation Drawer Android
Задача - вывести в Navigation Drawer стандартного шаблона список доступных датчиков устройства. Каким образом программно можно добавлять пункты меню в Дровер? По умолчанию стандартный шаблон подхватывает пункты из дирриктории res/menu/activity_menu_drawer.xml.
Android Ошибка в коде, из-за которой вылетает приложение http://www.cyberforum.ru/android-dev/thread1828546.html
Происходит ошибка и приложение вылетает (останавливается). package com.example.vital.bitrans; import android.app.Application; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.Button; import android.widget.EditText; import android.view.View; import android.view.View.OnClickListener;
Android Отмена распознавания голоса Создаю интент с распознаванием Intent listenIntent; private void startVoiceRecognitionActivity() { listenIntent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); listenIntent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE, getClass().getPackage().getName()); listenIntent.putExtra(RecognizerIntent.EXTRA_PROMPT, "Произнесите команду"); ... подробнее

Показать сообщение отдельно
Rom96
0 / 0 / 0
Регистрация: 07.11.2014
Сообщений: 35

Retrofit 2 + RxAndroid + VkApi. Как возвратить ответ? - Android

18.10.2016, 16:03. Просмотров 333. Ответов 4
Метки (Все метки)

Здравствуйте!
Захотелось в своем приложении использовать rxAndroid. Но нашлась проблема при использовании данной библиотеки.

Сразу краткий пример:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
   public interface ApiInterface {
 
    public static final String BASE_URL = "https://api.vk.com/method/";
 
    @GET("users.get?")
    rx.Observable<ProfileInfo> getProfileInfo(
            @Query("user_ids") String user_ids,
            @Query("v") String version);
 
    public static final Retrofit retrofit = new Retrofit.Builder()
                    .baseUrl(BASE_URL)
                    .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
                    .addConverterFactory(GsonConverterFactory.create())
                    .build();
}
Модели ответа:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public class ProfileInfo {
 
    @SerializedName("response")
    private ArrayList<ResponseProfileInfo> response = new ArrayList<>();
 
    public ProfileInfo(ArrayList<ResponseProfileInfo> response) {
        this.response = response;
    }
 
    public ProfileInfo() {
        this.response = response;
    }
 
    public ArrayList<ResponseProfileInfo> getResponse() {
        Log.d("123", "3123 ");
        return response;
    }
 
    public void setResponse(ArrayList<ResponseProfileInfo> response) {
        this.response = response;
    }
}

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
public class ResponseProfileInfo {
 
    @SerializedName("id")
    private int id;
    @SerializedName("first_name")
    private String firstName;
    @SerializedName("last_name")
    private String lastName;
 
 
 
    public int getId() {
        return id;
    }
    public void setId(int id) {this.id = id;}
    public String getFirstName() {
        return firstName;
    }
    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }
    public String getLastName() {
        return lastName;
    }
    public void setLastName(String lastName) {
        this.lastName = lastName;
    }
 
}
Пример использования:

Java
1
2
3
4
5
ApiInterface vkService= ApiInterface.retrofit.create(ApiInterface.class);
        Observable<ProfileInfo> call=vkService.getProfileInfo("210700286","5.59");
 
         call.flatMap(response -> Observable.from(response.getResponse()))
                .subscribe(responseProfileInfo1 -> Log.d("TAG", responseProfileInfo1.getLastName()));
Проблема соответственно тут:

Java
1
2
 call.flatMap(response -> Observable.from(response.getResponse()))
                .subscribe(responseProfileInfo1 -> Log.d("TAG", responseProfileInfo1.getLastName()));
Причем самое странное, что такой подход сработал и всё было ОК. Но вот после нескольких экспериментов данный метод заглох, приложение начало крашится дойдя до call... После нескольких попыток начал работать вот такой пример:

Java
1
2
3
call.map(profileInfo -> Observable.from(profileInfo.getResponse()))
                .map(responseProfileInfoObservable -> responseProfileInfoObservable
                        .subscribe(responseProfileInfo ->Log.d("TAG", "В Результате " + responseProfileInfo.getFirstName())));
Но попробовав сделать "ещё что-нибудь" и снова вернувшись к варианту номер 2, данный подход просто ничего не логировал, но при этом не крашился.

Пробовал и очищать и экспериментировать с gradle. но не вышло. Использую Android Studio 2.1.3



Вот gradle:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
apply plugin: 'com.android.application'
apply plugin: 'android-apt'
apply plugin: 'me.tatarka.retrolambda'
 
android {
    compileSdkVersion 23
    buildToolsVersion "23.0.3"
 
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    defaultConfig {
        applicationId "com.pack.vkdesk"
        minSdkVersion 16
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}
 
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.3.0'
 
    compile 'com.google.code.gson:gson:2.6.2'
 
    compile 'com.squareup.retrofit2:retrofit:2.0.2'
    compile 'com.squareup.retrofit2:converter-gson:2.1.0'
    compile 'com.squareup.retrofit2:adapter-rxjava:2.1.0'
 
    compile 'io.reactivex:rxandroid:1.2.1'
    compile 'io.reactivex:rxjava:1.2.1'
 
    compile 'com.jakewharton:butterknife:8.4.0'
    apt 'com.jakewharton:butterknife-compiler:8.4.0'
 
}


Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.1.3'
        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
        classpath 'me.tatarka:gradle-retrolambda:3.2.0'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}
 
allprojects {
    repositories {
        jcenter()
    }
}
 
task clean(type: Delete) {
    delete rootProject.buildDir
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru