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

TextView 에서 setText에 String변수 안들어가지나요??

0 추천
TextView[] yearText = new TextView[12];
String[] yearVal = new String [12];

int i = 0;

LinearLayout container;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.app_quiza);

    container = (LinearLayout) findViewById(R.id.quiza_lina);

    loopback backTask = new loopback();
    backTask.execute("yearling", "mono");

    yearText[0] = new TextView(this);
    yearText[0].setBackgroundColor(Color.parseColor("#00555555")); 
    yearText[0].setPadding(20, 10, 10, 10);  
    yearText[0].setTextColor(Color.parseColor("#FF7200")); 
    yearText[0].setTextSize(13);   
    yearText[0].setText(yearVal[0]);  
    container.addView(yearText[0]);

 

안녕하세요. 위의소스에서 

 backTask.execute("yearling", "mono");

이 소스를 통해 yearVal 배열에 값을 입력한 것은 확인되었어요.

근데 아래처럼 addView를 하면 텍스트가 나오질 않아요.

    yearText[0].setText(yearVal[0]);  
    container.addView(yearText[0]);

 

아래처럼 하면 나오는데말이죠;;;

    yearText[0].setText("2016년");  
    container.addView(yearText[0]);

 

왜그런거죠?

 

dbdomino (200 포인트) 님이 2016년 9월 6일 질문

1개의 답변

0 추천
현재 보이는 소스만 보면 값 null인게 정산인거같은데요..? 선언만하시고 값 을 안넣어주셨는데
sadeva (21,550 포인트) 님이 2016년 9월 6일 답변
backTask.execute("yearling", "mono");

이 소스를 통해 yearVal에다가 값을 넣어요.
값 넣은건 Toast를 통해서 확인이 되요.
아 죄송합니다 질문을 다시올릴께요.

backTask.execute("yearling", "mono");
요 내부에선  토스트로 yearVal에선 확인되는데
onCreate 부분에서는 토스트로 null로 출력되네요;;
yearVal이 전역 배열인데;; 왜그런지모르겠네요
String[] yearVal = new String [12];
하셨어도 12개의 String을 담을 수 있는 준비만 된것인지 각각의 아이템에는 앞에 분 댓글처럼 null이 들어 있습니다. 초기화를 정확하게 해주셔야 할 듯 합니다.
그리고 변수에 들어있는 값은 toast 보다는 디버깅을 하시거나 Log.d같은 방법을 이용하시는 것이 더 나을 듯합니다.
그러시면  asynctask 안에다가 runouithread 달고 settext 하셔야졍..
sadeva님 말씀처럼, asynctask에서 내용을 업데이트 하는 거네요. onPostExecute() 메소드 안에서 해당 작업을 해주시면 되구요. onPreExecute와 onPostExceute는 UI thread상에서 동작을 하므로 굳이 UI thread를 호출하실 필요는 없을 겁니다.
아! 감사합니다.
asynctask구조를 좀 더 잘 이해했어야되는건데 ㅋㅋㅋ
onPostExceute에서만 작업해도 상관없네요.
Context잡아주고 바로 작업가능하더라구요!

sadeva님도 감사합니다!

Jeenee님 작업방법 참고해서 디버깅하는데 써볼께요!
...