Unhandled Exception type ParseException
いつも通り、無料テキストのSyllabusというプロジェクトの途中で行き詰まったので。p.117あたり。問題は2つ。やっとJSON入りのプロジェクトが動いたず。
稼働確認済みのソースはこの辺に上げとく。github.com
1.Unhandled Exception type ParseException
date = inputDateFormat.parse(dateStr);
ここで、「Unhandled Exception type ParseException」というエラーが出たが、
} catch (java.text.ParseException e) {
ParseExceptionのクラスをちょっと書き換えたら直った。以上。
MainActivity.java修正前
private void setCourseArray(JSONArray array) throws JSONException { int num = array.length(); SimpleDateFormat inputDateFormat = new SimpleDateFormat("yyyy-MM-dd"); for(int i = 0; i < num; i++) { CourseItem item = new CourseItem(); JSONObject obj = array.getJSONObject(i); String dateStr = obj.getString("date"); Date date = null; try { // str型からdate型の定型に変換 date = inputDateFormat.parse(dateStr); item.date = date; item.title = obj.getString("title"); item.teacher = obj.getString("teacher"); item.detail = obj.getString("detail"); itemList.add(item); } catch (ParseException e) { e.printStackTrace(); } } adapter.notifyDataSetChanged(); }
MainActivity.java修正後
private void setCourseArray(JSONArray array) throws JSONException { int num = array.length(); SimpleDateFormat inputDateFormat = new SimpleDateFormat("yyyy-MM-dd"); for(int i = 0; i < num; i++) { CourseItem item = new CourseItem(); JSONObject obj = array.getJSONObject(i); String dateStr = obj.getString("date"); Date date = null; try { // str型からdate型の定型に変換 date = inputDateFormat.parse(dateStr); item.date = date; item.title = obj.getString("title"); item.teacher = obj.getString("teacher"); item.detail = obj.getString("detail"); itemList.add(item); } catch (java.text.ParseException e) { e.printStackTrace(); } } adapter.notifyDataSetChanged(); }
2.通信が始まらない
Logcatを開くと、犬も歩けばhit a stick(internetがpermission denied)的なメッセージが。AndroidManifest.xmlの真ん中辺に以下を追記。
追記文の内容はこれ。
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.INTERNET" />
これで動くはず。