Im 초심자는 Json 파싱 및 인터넷에서 스트리밍을 배우고 있습니다. 이 앱에서는 오류가 발생하지 않지만 아무 것도 표시하지 않습니다. 문제가 무엇인지 알지 못하고 로그에서 문제를 볼 수 없습니다. 여기에 코드 :Cant는 앱에서 Json 정보를 얻습니다.
InputStream is;
String line;
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = (TextView) findViewById(R.id.text);
try {
URL url = new URL("https://earthquake.usgs.gov/fdsnws/event/1/query?format=geojson&minlatitude=4&maxlatitude=5");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
is = new BufferedInputStream(connection.getInputStream());
if(connection.getInputStream()==null)
{
textView.setText("input stream empty");
}
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
StringBuilder builder = new StringBuilder();
while((line=reader.readLine())!=null){
builder.append(line);
}
if(builder.toString().equals(""))
{
textView.setText("no work builder empty");
}
line=builder.toString();
JSONObject object = new JSONObject(line);
JSONArray fea = object.getJSONArray("features");
JSONObject QUAKE = fea.getJSONObject(0);
JSONObject pro = QUAKE.getJSONObject("properties");
int mag = pro.getInt("mag");
textView.setText(mag+"");
} catch (Exception e) {
e.printStackTrace();
}
}
감사합니다!
** doInBackground (..) ** 메소드에서 UI 조작을 수행 할 수 없으므로이 코드는 충돌합니다. ** onPreExecute() ** 또는 ** onPostExecute() ** 메소드 –
@DeepLathia에서 수행 할 수 있습니다. 감사합니다. 업데이트 된 ANS를 확인하십시오. – Sush