2012-03-22 15 views
0

final String message [] = {""、 ""、 ""};日付表示ソリューションのリクエスト

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); 


     } 

ユーザーIDと残高は表示できますが、textviewの日付は空です。これの解決策を知ってもいいですか?

答えて

0

これはおそらく間違っている:

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

まず、私はカレンダーにJSONObjectからキャストすると、このように動作します疑います。値は、JSONObjects、他のJSONArrays、Strings、Booleans、Integers、Longs、Doubles、nullまたはNULLの任意の組み合わせかもしれません。値はNaN、無限大、またはここにリストされていないタイプではありません。 (here

試してみてください。

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); 

0から11までの月の値が格納されていることを確認してから、としてください。Dheeraj said

0

「PayDate」の形式は何ですか? Calendarオブジェクトに強制することはできません。 documentationを参照してください。おそらく、あなたは書くことを意図:

Udate.setText(json_data.getString("PayDate")); 
関連する問題