Присвоение данных в классе модели массиву и отправка уведомления пользователю в соответствии с поступающими данными. - PullRequest
0 голосов
/ 26 апреля 2020

введите описание изображения здесь У меня есть две проблемы постепенно, во-первых, я хочу извлечь поле getDavaTarih из класса модели падежей и присвоить его массиву

public class Davalar {

String davaTarihi, davaTuru, esasNo, kararNo, notlar, key;

public Davalar() {

}

public Davalar(String davaTarihi, String davaTuru, String esasNo, String kararNo, String notlar, String key) {
    this.davaTarihi = davaTarihi;
    this.davaTuru = davaTuru;
    this.esasNo = esasNo;
    this.kararNo = kararNo;
    this.notlar = notlar;
    this.key = key;
}

public String getDavaTarihi() {
    return davaTarihi;
}

public String getDavaTuru() {
    return davaTuru;
}

public String getEsasNo() {
    return esasNo;
}

public String getKararNo() {
    return kararNo;
}

public String getNotlar() {
    return notlar;
}

public String getKey() {
    return key;
}
}

, где я добавить данные в класс модели

public void davalariGetir() {
    databaseReference.child(userId).orderByChild("davaTarihi").addChildEventListener(new ChildEventListener() {
        @Override
        public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
            Davalar davalar = dataSnapshot.getValue(Davalar.class);
            if (davalarList.indexOf(dataSnapshot.getKey()) == -1) {
                davalarList.add(new Davalar(davalar.getDavaTarihi(), davalar.getDavaTuru(),
                        davalar.getEsasNo(), davalar.getKararNo(),
                        davalar.getNotlar(), davalar.getKey()));
            }

            textView_dava_ekle.setText("");
            image_view_ekle.setVisibility(View.INVISIBLE);

            davalarAdapter.notifyDataSetChanged();

        }

        @Override
        public void onChildChanged(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {

        }

        @Override
        public void onChildRemoved(@NonNull final DataSnapshot dataSnapshot) {

            davalarList.remove(dataSnapshot.getKey());
            davalarAdapter.notifyDataSetChanged();


        }

        @Override
        public void onChildMoved(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {

        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {

        }
    });

внутри этой функции. Я хочу добавить все поля getDavaTarih в массив строк, как я могу это сделать? тогда я перейду к моему другому вопросу

Я хочу взять два поля, показанных в классе модели, в итоге и назначить их для строкового массива

Ответы [ 2 ]

0 голосов
/ 29 апреля 2020

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

 public void davalariGetir() {
    databaseReference.child(userId).orderByChild("davaTarihi").addChildEventListener(new ChildEventListener() {
        @Override
        public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
            Davalar davalar = dataSnapshot.getValue(Davalar.class);
            if (davalarList.indexOf(dataSnapshot.getKey()) == -1) {
                davalarList.add(new Davalar(davalar.getDavaTarihi(), davalar.getDavaTuru(),
                        davalar.getEsasNo(), davalar.getKararNo(),
                        davalar.getNotlar(), davalar.getKey()));

            }

            for (int i = 0; i < davalarList.size(); i++) {
                davaTarihi = davalarList.get(i).getDavaTarihi();
                try {
                    convertedDate = dateFormat.parse(date);
                    convertedDate2 = dateFormat.parse(davaTarihi);
                    Log.i("yyy", convertedDate2.toString());
                    Log.i("abc", convertedDate.toString());
                } catch (ParseException e) {
                    e.printStackTrace();
                }
                if (convertedDate.after(convertedDate2)) {

                    //TODO push notification
                    // OneSignal Initialization
                    OneSignal.startInit(DavalarimActivity.this)
                            .inFocusDisplaying(OneSignal.OSInFocusDisplayOption.Notification)
                            .unsubscribeWhenNotificationsAreDisabled(true)
                            .init();

                }
            }


            textView_dava_ekle.setText("");
            image_view_ekle.setVisibility(View.INVISIBLE);

            davalarAdapter.notifyDataSetChanged();

        }

        @Override
        public void onChildChanged(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {

        }

        @Override
        public void onChildRemoved(@NonNull final DataSnapshot dataSnapshot) {

            davalarList.remove(dataSnapshot.getKey());
            davalarAdapter.notifyDataSetChanged();


        }

        @Override
        public void onChildMoved(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {

        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {

        }
    });

https://i.imgur.com/2dI2s97.png https://i.imgur.com/PmBNc29.png

И где бы я ни поместил это в класс, список пусто, просто наполняется там, где я пишу, но всегда есть больше

Blockquote

0 голосов
/ 26 апреля 2020

Из вашего комментария я понимаю, что вы пытаетесь извлечь davaTarihi, если это вопрос:

//after you filled the davalarList

for(int i=0 ; i<davalarList.size() ; i++){

//extract every davaTarihi and compare it with the current date

String davaTarihi = davalarList.get(i).getDavaTarihi();

//then notify whatever

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