마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

Json 파일 질문이요

0 추천

url 받아서 jsp 으로 작성한 json을 파싱 하는과정입니다.

로그로 찍어본 결과 값은 잘 나오는데 text뷰로 찍으면 한번만 호출되고 그다음값은 나오질 않네요

그런데 버튼으로 묶어서 처리하면 한번에 나옵니다.

예시 코드입니다.

 

void getDatajson()
{
    new Thread()
    {
        public void run()
        {
            try
            {
                URL url = new URL(예시);
                InputStreamReader isr = new InputStreamReader(url.openConnection().getInputStream(), "UTF-8");
                JSONObject object = (JSONObject) JSONValue.parse(isr);
                JSONArray listArray = (JSONArray) object.get("List");
                Log.d("1", "1");
                for (int i = 0; i < listArray.size(); i++)
                {
                    JSONObject data = (JSONObject) listArray.get(i);
                    data_total = data.get("data_total").toString();
                    voice_total = data.get("voice_total").toString();
                    message_total = data.get("message_total").toString();
                    data_use = data.get("data_use").toString();
                    message_use = data.get("message_use").toString();
                    voice_use = data.get("voice_use").toString();
                    Log.d("data_total", data_total);
                    Log.d("voice_total", voice_total);
                    Log.d("message_total", message_total);
                    Log.d("data_use", data_use);
                    Log.d("message_use", message_use);
                    Log.d("voice_use", voice_use);
                }
            }
            catch (Exception e)
            {
                Log.d("예외", e.toString());
            }
        }
    }.start();

    button1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view)
        {
            data_total_text.setText(data_total); // 총 데이터 사용량
            data_use_text.setText(data_use); //현재 데이터 사용량
            text.setText(data_total + "/" + voice_total + "/" + message_total + "/" + data_use + "/" + message_use + "/" + voice_use);
개발자어려워요 (660 포인트) 님이 2017년 9월 15일 질문

1개의 답변

0 추천

뷰의 갱신은 오로지 메인쓰레드에 의해서 변경됩니다.

핸들러나 runOnUiThread를 사용해보시길 바랍니당

Handler handler = new Handler();
handler.post(new Runnable() {
    @Override
    public void run() {
        
    }
});
runOnUiThread(new Runnable() {
    @Override
    public void run() {
        
    }
});
Printf (1,380 포인트) 님이 2017년 9월 18일 답변
큰도움이 되었습니다 감사합니다 ^^
...