아하
생활

생활꿀팁

솔직한줄나비94
솔직한줄나비94

안드로이드 스튜디오 쓰레드 밖으로 값 가져오는 법?

MainActivity.java

public class MainActivity extends AppCompatActivity { String data=""; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.subactivity_main); new Thread() { @Override public void run() { String url = ""; JSONParser jParser = new JSONParser(); data = jParser.getJSONArrayFromUrl(url); try { JSONObject obj = new JSONObject(data); data=obj.getString("data"); System.out.println(data); } catch (Exception e) { e.printStackTrace(); } } }.start(); System.out.println(data); }}

JSONParser.java

public class JSONParser { static InputStream is = null; static JSONArray jArrayObj = null; static String json = ""; public JSONParser() { } public String getJSONArrayFromUrl(String url) { try { DefaultHttpClient httpClient = new DefaultHttpClient(); // System.out.println(url); HttpGet httpGet = new HttpGet(url); HttpResponse httpResponse = httpClient.execute(httpGet); HttpEntity httpEntity = httpResponse.getEntity(); is = httpEntity.getContent(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } try { BufferedReader reader = new BufferedReader(new InputStreamReader( is, "utf-8"), 8); StringBuilder sb = new StringBuilder(); String line = null; while ((line = reader.readLine()) != null) { sb.append(line + "n"); } is.close(); json = sb.toString(); } catch (Exception e) { Log.e("Buffer Error", "Error converting result " + e.toString()); } return json; } }

http://blog.naver.com/PostView.nhn?blogId=itkmj&logNo=220977728958

위 블로그의 소스를 조금 바꾸어서 쓴 코드 입니다

MainActivity 에서 data 값에 JSONParser 에서 리턴한 값을 저장하고 싶습니다

소스를 잘못 바꾸었나요?

초보라 어디가 문제인지 전혀 모르겠습니다

도움 주시면 감사하겠습니다

2개의 답변이 있어요!