2013-05-12 3 views
1

귀하의 도움에 감사드립니다. 화면에서 다른보기를 표시하는 ViewAnimator를 사용하려고합니다.Android : 화면에 아무것도 표시되지 않는 이유는 무엇입니까?

그래서 :

  • 는 내가 2보기 (은 LinearLayouts이 경우) ViewAnimator에를,

  • 내가 된 setContentView (viewAnimator)를 설정 추가 VievAnimator,

  • 을 만들;

  • 나는 viewAnimator.showNext()를 호출한다.

하지만 아무것도 화면에 표시되지 않습니다 ...

public class MainActivity extends Activity { 
public DataBaseHelper db; 
public EditText enter; 
public TextView tv; 
public ArrayList<String> listWord; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    ViewAnimator viewAnimator = new ViewAnimator(this); 

    LayoutInflater inflater = (LayoutInflater)this.getSystemService 
       (Context.LAYOUT_INFLATER_SERVICE); 
    LinearLayout front =(LinearLayout) inflater.inflate(R.layout.front,viewAnimator); 
    LinearLayout back =(LinearLayout) inflater.inflate(R.layout.back,viewAnimator); 

    viewAnimator.addView(front); 
    viewAnimator.addView(back); 

    setContentView(viewAnimator); 
    viewAnimator.showNext(); 

어떤 도움이 아주 많이 감사합니다!

답변

2

문제는 다음 줄에 : 당신이 인플레이션 동안 루트보기로 viewAnimator를 제공 할 때, 다음 같은 루트 뷰가 반환되기 때문에

LinearLayout front =(LinearLayout) inflater.inflate(R.layout.front,viewAnimator); 
LinearLayout back =(LinearLayout) inflater.inflate(R.layout.back,viewAnimator); 

및 원인 코드에서 ClassCastExceptionViewAnimator 캐스팅 할 수 없습니다 때문에 '에 LinearLayout을 입력하십시오. 참고로

:

공공보기 부풀려 (INT 자원, 뷰 그룹 루트)

매개 변수

자원은 XML 레이아웃 리소스를로드 할 ID (예 : R.layout.main_page)

루트 생성 된 계층의 상위가되는 선택적보기입니다.

반환

팽창 된 계층 구조의 루트보기. 루트가 제공된 경우 루트 뷰입니다. 그렇지 않으면 팽창 된 XML 파일의 루트입니다.

단순히 루트보기로널 (null)을 제공하고 그것을 잘 작동합니다. 예 :

LinearLayout front = (LinearLayout) inflater.inflate(R.layout.front, null); 
LinearLayout back = (LinearLayout) inflater.inflate(R.layout.back, null); 
+0

덕분에 isse가 해결되었습니다. –

관련 문제