2013-11-04 6 views
0

내 앱의 모든 텍스트보기 크기를 특정 크기로 설정하려고합니다.모든 텍스트 뷰 참조

public void rbFontClicked(View view) { 
     // Is the button now checked? 
     boolean checked = ((RadioButton) view).isChecked(); 

     // Check which radio button was clicked 
     switch(view.getId()) { 
      case R.id.rbsmall: 
       if (checked) 
        //eveysingletextview.setTextSize(12) 
        everysingleedittext.setTextSize(12) 
       break; 

      case R.id.rbmedium: 
       if (checked) 
        // do nothing 
       break; 

      case R.id.rblarge: 
       if (checked) 
        // set dimension to large font, 
       break; 

어떻게하면 모든 textviews를 참조 할 수 있습니까? 나는 Edittexts를 위해 그것을 또한 할 필요가있다. 그래서 나는 각 view를 개별적으로 참조하고 싶지 않다, 영원히 걸릴 것이다.

TIA.

+0

현재 계층 구조의 모든 뷰를 검색하고 텍스트 뷰인지 편집 텍스트인지 확인하고 올바르게 이해 했습니까? – Blackbelt

+1

스타일 XML 파일을 사용하여보기 모양 속성 (예 : 텍스트 크기)을 정의 할 수 있습니다. 다음 관련 질문을 참조하십시오 : http://stackoverflow.com/questions/3078081/setting-global-styles-for-views-in-android 및 안드로이드 설명서 : http://developer.android.com/guide/ topics/ui/themes.html – tiguchi

+0

사용자가 라디오 버튼을 클릭하면 모든 응용 프로그램의 글꼴이 크게, 보통 또는 작게 변경됩니다. 나는 그 질문에 정말로 그것을 써야했다. –

답변

1
int size = 10; 
switch(view.getId()) { 
      case R.id.rbsmall: 
       if (checked) 
        size = 12; 
       break; 

// other case 

} 

    ViewGroup root = (ViewGroup) findViewById(R.id.rootLayout); 
    int children = root.getChildCount(); 
    for (int i = 0; i < children; i++) { 
     View view = root.getChildAt(i); 
     if (view instanceOf TextView) { 
     TextView tmp = (TextView)view; 
     view.setText(size); 
     } 
    } 

우아한 것은 아니지만 작동해야합니다. 오타를 확인하십시오

+0

나는 이것이 모든 텍스트보기를 크기로 바꾸고 또 다른 if 문을 편집 문구에 넣을 수 있다는 것을 알고 있습니다. x 레이아웃에 대한 findViewById (R.id.other_layout)의 경우가 현재 레이아웃뿐 아니라 전체 어플리케이션에 맞게 변경됩니까? –

+0

오늘 밤 자정까지 내 과제 ID가 있습니다 - 우아함에 대해 걱정하지 마세요 :) –

+0

물론 현재 레이아웃에 대한 것입니다. 하지만 정적 메서드를 만들고 활동을 변경할 때 호출하는 방법을 생각해 볼 수 있습니다. 이 승인은 잘못되었습니다. 당신은 그 상황에 맞는 스타일을 사용해야합니다. – Blackbelt