2015-11-17 3 views
0

Я использую WebViews для отображения нескольких анимированных gif. Вот мой код:Несколько WebViews в одном действии

protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_myactivity); 

     Intent myintent = getIntent(); 
     String myWord = myintent.getStringExtra("word"); 

     LinearLayout linearLayout= new LinearLayout(this); 
     linearLayout.setOrientation(LinearLayout.VERTICAL); 
     linearLayout.setLayoutParams(new AbsListView.LayoutParams(
       AbsListView.LayoutParams.MATCH_PARENT, 
       AbsListView.LayoutParams.MATCH_PARENT)); 

     for(int i = 0; i < myKelime.length(); i++) 
     { 

      WebView wView = new WebView(this); 
      //setting image resource 
      switch (myWord.charAt(i)){ 
       case 'a':   wView.loadUrl("file:///android_asset/a.gif"); 
        setContentView(wView); 
        break; 
       case 'b' :   wView.loadUrl("file:///android_asset/b.gif"); 
        setContentView(wView); 
        break; 
       case 'c' :   wView.loadUrl("file:///android_asset/c.gif"); 
            setContentView(wView); 
                   break; 

//goes until z 

} 
      wView.setLayoutParams(new AbsListView.LayoutParams(
        AbsListView.LayoutParams.MATCH_PARENT, 
        AbsListView.LayoutParams.WRAP_CONTENT)); 
      linearLayout.addView(wView); 
      //make visible to program 
      setContentView(linearLayout); 


     } 
    } 

Когда я запускаю этот код, я получаю эту ошибку:

Невозможно начать деятельность ComponentInfo {com.example.mypc.myapp/com.example.mypc .myapp.MyActivity}: java.lang.IllegalStateException: указанный ребенок уже имеет родителя . Сначала вы должны вызвать removeView() родителя ребенка.

Это работало, когда я использовал ImageView вместо WebView. Как я могу избавиться от этого и отобразить несколько веб-просмотров правильно? Спасибо.

ответ

1

Когда я добавил этот код, он решил:

if(wView.getParent()!=null) 
     ((ViewGroup)wView.getParent()).removeView(wView); 
2

Вы использовали setContentView() два раза в своем коде. Это может быть причиной. Не рекомендуется использовать setContentView() несколько раз в том же упражнении. Попробуйте использовать разные фрагменты, если вам нужно это реализовать.

Смежные вопросы