Модифицируйте вызов GET из списка возврата синглтон-класса с размером 0 - PullRequest
0 голосов
/ 04 ноября 2019

Я работаю над приложением, мне нужно использовать определенный тип данных во многих действиях. поэтому я попытался сделать одноэлементный класс и определить там свой метод GET, скажем getProductHeads, это модифицированный вызов возвращает список моей деятельности, где я его вызываю.

Проблема, с которой я сталкиваюсь, заключается вв самый первый раз, когда я запускаю приложение ---> запускаю свою операцию добавления продукта --- которая вызывает этот метод getProductHeads, возвращает список с размером 0, а когда я пытаюсь сделать это снова, возвращаясь и снова запуская операциюон дает мне данные, и он продолжает давать данные, пока приложение не перезапустится.

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

public class ProductHeads {

    private static ProductHeads mInstance;
    public  List<ProductHeadsModel> productHeadsModels = new ArrayList<ProductHeadsModel>();

    public static ProductHeads getInstance() {
        if(mInstance == null) {
            if (mInstance == null)
                mInstance = new ProductHeads();
        }
        return mInstance;
    }

    private ProductHeads() {
//        productHeadsModels = new ArrayList<ProductHeadsModel>();
    }

    public  List<ProductHeadsModel> getProductHeads(String licenskey, Context context){

        OkHttpClient okHttpClient = new OkHttpClient().newBuilder()
                .connectTimeout(40, TimeUnit.SECONDS)
                .readTimeout(60, TimeUnit.SECONDS)
                .writeTimeout(60, TimeUnit.SECONDS)
                .build();

        Retrofit retrofit = new Retrofit.Builder()
                .baseUrl(Constants.BASE_URL)
                .client(okHttpClient)
                .addConverterFactory(GsonConverterFactory.create())
                .build();

        RequestInterface requestInterface = retrofit.create(RequestInterface.class);
        Call<List<ProductHeadsModel>> call = requestInterface.getProductHeads(licenskey);
        call.enqueue(new Callback<List<ProductHeadsModel>>() {
            @Override
            public void onResponse(Call<List<ProductHeadsModel>> call, Response<List<ProductHeadsModel>> response) {
                productHeadsModels = response.body();
                if (productHeadsModels != null){

                }else Toast.makeText(context, "No Product head response found", Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onFailure(Call<List<ProductHeadsModel>> call, Throwable t) {
                Toast.makeText(context, "Product Heads::::"+t.getLocalizedMessage(), Toast.LENGTH_SHORT).show();
            }
        });

        return this.productHeadsModels;
    }
}

Я называю это так из своей деятельности .....

 private List<ProductHeadsModel> productHeadsModels;
productHeadsModels = ProductHeads.getInstance().getProductHeads(mlicenseID, AddProduct.this);

Я не знаю, подходит ли мой подходэто плохо или в чем проблема. Буду очень признателен за любую помощь или предложение.

Спасибо !!!!

:::: РЕДАКТИРОВАТЬ ::::: вот мои первые данные ответа, которые появляются хорошо, но список, которыйвозвращается пусто

2019-11-04 13: 38: 03.011 4153-4153 / com.ht.dell.qr_app E / CALL CALL: Форма продукта 2019-11-04 13:38:03.011 4153-4153 / com.ht.dell.qr_app E / CALL CALL: Цвет 2019-11-04 13: 38: 03.011 4153-4153 / com.ht.dell.qr_app E / CALL CALL: Тип финиша 2019-11-04 13: 38: 03.011 4153-4153 / com.ht.dell.qr_app E / CALL CALL: Дата создания 2019-11-04 13: 38: 03.011 4153-4153 / com.ht.dell.qr_app E / CALL CALL:Дизайнер 2019-11-04 13: 38: 03.011 4153-4153 / com.ht.dell.qr_app E / CALL CALL: Supervisor 2019-11-04 13: 38: 03.011 4153-4153 / com.ht.dell.qr_app E/ CALL CALL: Цена 2019-11-04 13: 38: 03.011 4153-4153 / com.ht.dell.qr_app E / CALL CALL: Склад Кол-во 2019-11-04 13: 38: 03.011 4153-4153 / com.ht.dell.qr_app E / CALL CALL: Качество 2019-11-04 13: 38: 03.011 4153-4153 / com.ht.dell.qr_app E / CALL CALL: Alias ​​Code 2019-11-04 13: 38: 03.0114153-4153 / com.ht.dell.qr_app E / CALL CALL: Комментарий 2019-11-04 13: 38: 03.011 4153-4153 / com.ht.dell.qr_app E / CALL CALL: CBM 2019-11-04 13: 38: 03.011 4153-4153 / com.ht.dell.qr_app E / CALL CALL: Вес 2019-11-04 13: 38: 03.011 4153-4153 / com.ht.dell.qr_app E / CALL CALL: CFT 2019-11-04 13: 38: 03.011 4153-4153 / com.ht.dell.qr_app E / CALL CALL: Загружаемость 20 '2019-11-04 13: 38: 03.011 4153-4153 / com.ht.dell.qr_app E /CALL CALL: Загружаемость 40 '2019-11-04 13: 38: 03.011 4153-4153 / com.ht.dell.qr_app E / CALL CALL: Загружаемость 40'HC

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...