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

setText()가 동작하지 않습니다.

0 추천
class AA extends Activity {
 
    BB BBIst;
 
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
 
    TestTV = (TextView)findViewById(R.id.TestTV);
    TestTV.setVisibility(View.GONE); 
 
    BBIst = new BB(this);
    setContentView(BBIst );
    }
 
}
 
class BB extends View{
 
    public void drawText(Canvas canvas)
    {
        // 그리는 동작
    }
 
}
 
 위와 같이 클래스가 구성이 되어 있을때 BB클래스에서 필요한 동작을 완료한 후 AA클래스에서 
아래의 코드를 실행합니다.
 
BB.setVisibility(View.GONE);
setContentView(R.layout.AA);
TestTV.setVisibility(View.VISIBLE);
TestTV.setText("Test string");
 
위의 코드를 실행해도 화면에 Test string가 출력이 되지 않습니다.
 
setText를 쓰지않고 .xml에 ndroid:text="Test string" 를 사용하는경우는 정상적으로 화면에 출력이 됩니다.
setText()를 사용할때 추가적으로 해줘야할 작업이 있는건가요?
 
 
 
 
azaza (120 포인트) 님이 2013년 8월 26일 질문

1개의 답변

0 추천

setContentView(R.layout.AA);  를 호출하지 않은 상태에서 

  TestTV = (TextView)findViewById(R.id.TestTV); 를 호출하면 null 이 나오는게 정상인데.

안죽고 실행이 되긴하는건가요? 

 

BB.setVisibility(View.GONE);

setContentView(R.layout.AA);
 TestTV = (TextView)findViewById(R.id.TestTV); 
TestTV.setVisibility(View.VISIBLE);
TestTV.setText("Test string");
로 해보세요/

 

사악미소 (65,330 포인트) 님이 2013년 8월 26일 답변
답변 감사합니다

onCreate()에서 setContentView(R.layout.AA)는 한 상태였습니다.

setContentView(R.layout.A);
setContentView(R.layout.B);
setContentView(R.layout.A);

하게되면R.layout.A에 해당하는 .xml에 미리 정해준 속성외에는 객체에 정보들을 다시 지정해줘야 되는거였네요
...