Запрос решения для отображения даты - PullRequest
0 голосов
/ 22 марта 2012

окончательное строковое сообщение [] = {"", "", ""};

    try{
        String UID = null, UBAL = null;
        DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        Calendar PDate;


        ArrayList<NameValuePair> postParameters = new ArrayList<NameValuePair>();
        postParameters.add(new BasicNameValuePair("UserID",id.getId()));

        response = connection.executeHttpPost("http://condoproject.net16.net/PayCheck.php", postParameters);
        Toast.makeText(getApplicationContext(), ""+response, Toast.LENGTH_LONG).show();

        JSONArray jArray = new JSONArray(response);

        for(int i = 0; i<jArray.length();i++)
        {
            JSONObject json_data= (JSONObject) jArray.get(i);

            Toast.makeText(getApplicationContext(), ""+json_data, Toast.LENGTH_LONG).show();

            UID = json_data.getString("UserID");
            UBAL = json_data.getString("UPayment");

            Uid1.setText(UID);
            ubal.setText(UBAL);

            PDate = (Calendar) json_data.get("PayDate");
            PDate.add(Calendar.MONTH, 1);               

            String P = ""+PDate;
            Udate.setText(P);


        }

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

Ответы [ 2 ]

0 голосов
/ 22 марта 2012

Вероятно, это неправильно:

PDate = (Calendar) json_data.get("PayDate");
PDate.add(Calendar.MONTH, 1);  
String P = ""+PDate;

Во-первых, я сомневаюсь, что приведение из JSONObject в Calendar работает таким образом.«Значения могут быть любым сочетанием JSONObjects, других JSONArrays, Strings, Booleans, Integer, Longs, Doubles, null или NULL. Значения не могут быть NaN, бесконечностями или любого типа, не перечисленного здесь».( здесь )

Попробуйте:

String myDateString = json_data.getString("PayDate"); // you can get a date as String

Во-вторых, вы не можете получить дату в удобочитаемом формате следующим образом:

String P = ""+PDate;

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

// assuming that the format of your date is "yyyy-MM-dd"
//convert from String to Date
Date myDate = dateFormat.parse(myDateString);
//convert from Date to Calendar
PDate = Calendar.getInstance();
PDate.setTime(myDate);
//this adds 1 month to your Calendar object:
PDate.add(Calendar.MONTH, 1);
//this converts back from Calendar to Date object
myDate = PDate.getTime();
//this converts from Date to String
myDateString = dateFormat.format(myDate);

// and update text
Udate.setText(myDateString );

, если вы добавляете в PDate только один месяц, чтобы компенсировать тот факт, что он хранит значения месяца изОт 0 до 11, тогда вы можете просто сделать, как Dheeraj сказал

0 голосов
/ 22 марта 2012

Что такое формат "PayDate"? Вы не можете привести его к объекту календаря. См. документацию . Возможно, вы хотели написать:

Udate.setText(json_data.getString("PayDate"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...