Значение свойств метода не изменяется на второй итерации цикла - PullRequest
0 голосов
/ 04 марта 2020

Я написал ReadMsgHelper следующим образом:

package com.zolfagharihafar.repco;

public class ReadMsgHelper {

public static int DAY = 0;
public static int MONTH = 0;
public static int YEAR = 0;
public static int MINUTE = 0;
public static int HOUR = 0;
public static long PRIC = 0;
private static final char kama = ',';
private static ArrayList<Long> exint;

    public ReadMsgHelper(String s){
        char[] ttl = new char[s.length()];
        s.getChars(0,s.length(),ttl,0);
        int i = 0;
        int k =0,
        int j=0;
        StringBuilder nu = new StringBuilder();
        while (i<s.length()){
            char c = ttl[i];
                if (c >= 0x0660 && c <= 0x0669){
                    c -= 0x0660 - '0';
                } else if (c >= 0x06f0 && c <= 0x06F9){
                    c -= 0x06f0 - '0';
                }
                if(i==s.length()-1&&c > 47 && c < 58 ){
                    nu.append(c);
                    exint.add(Long.parseLong(nu.toString()));
                    j=0;
                    nu = new StringBuilder();

                }else if(c > 47 && c < 58 && (j==0||k+1==i)){
                    nu.append(c);
                    k =i;
                    j++;
                }else if(j!=0&&c!=kama){
                    exint.add(Long.parseLong(nu.toString()));
                    j=0;
                    nu = new StringBuilder();
                }else if(j!=0){
                    k=i;
                    j++;
                }
                i++;

        }
        StringBuilder year = new StringBuilder();
        year.append(1);
        year.append(3);
        year.append(String.valueOf(exint.get(5)).charAt(0));
        year.append(String.valueOf(exint.get(5)).charAt(1));

        StringBuilder month = new StringBuilder();
        month.append(String.valueOf(exint.get(5)).charAt(2));
        month.append(String.valueOf(exint.get(5)).charAt(3));

        StringBuilder day = new StringBuilder();
        day.append(String.valueOf(exint.get(5)).charAt(4));
        day.append(String.valueOf(exint.get(5)).charAt(5));

        PRIC = exint.get(0);
        DAY =  Integer.parseInt(day.toString());
        MONTH =  Integer.parseInt(month.toString());
        YEAR =  Integer.parseInt(year.toString());
        MINUTE =  exint.get(4).intValue();
        HOUR =   exint.get(3).intValue();
    }
}

и объявил его экземпляр в методе другого класса следующим образом:

private void regstart() {
    UnRead unreads = new UnRead(getActivity());
    ArrayList<String[]> unreadsmsgs;
    ReadMsgHelper c;
    updateview(unreads);
    if(unreads_num>0){
        unreadsmsgs = unreads.getData();
        current_id = unreadsmsgs.get(0)[0];
        c = new ReadMsgHelper(unreadsmsgs.get(0)[1]);
        price.setText(String.valueOf(c.PRIC));
        dateAndTime.setPersianDate(c.YEAR,c.MONTH,c.DAY);
        dateAndTime.set(dateAndTime.HOUR_OF_DAY,c.HOUR);
        dateAndTime.set(dateAndTime.MINUTE,c.MINUTE);

        ithemName.setText("");

        htime.setText("" + "ساعت  "+ dateAndTime.getPersianTime());

        String pc = dateAndTime.getPersianLongDate();
        hdate.setText(pc);
    }else {
        unreadmsg.setText("no message");
        price.setText("");
        ithemName.setText("");
        description.setText("");
    }
}

предыдущий метод является щелчком слушатель, но только сначала щелкните свойства изменения значения ReadMsgHelper; со второго нажатия значения не меняются. Свойства:

ДЕНЬ
МЕСЯЦ
ГОД
МИНУТА
ЧАС
PRI C

...