2012-01-12 2 views
0

То, что я пытаюсь выполнить, состоит в том, чтобы иметь главный экран с тремя кнопками и в зависимости от того, какую кнопку вы нажимаете на соответствующие слайды с правой стороны. Я использовал ViewFlipper и используя ViewFlipper.showNext() Я могу скользить в следующем представлении. Я хотел бы иметь возможность изменить, какой вид следующий в строке, чтобы у меня были кнопки, соответствующие представлениям.Изменение вида, которое отображается рядом с ViewFlipper

Я попытался использовать ViewFlipper.add() и ViewFlipper.remove() для достижения этого, но безрезультатно. Может ли кто-нибудь сказать мне, где я ошибаюсь? Заранее спасибо.

Ниже приведен мой код для моего main.xml, и каждый вид представляет собой отдельный макет.

<?xml version="1.0" encoding="utf-8"?> 
<ViewFlipper xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/flipper" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 

<include 
    android:id="@+id/main" 
    layout="@layout/first_view" /> 

//Do I need these below? 
<include 
    android:id="@+id/first" 
    layout="@layout/more_info_1" /> 

<include 
    android:id="@+id/second" 
    layout="@layout/more_info_2" /> 

<include 
    android:id="@+id/third" 
    layout="@layout/more_info_3" /> 

</ViewFlipper> 

А вот мой onCreate() метод:

flipper = (ViewFlipper) findViewById(R.id.flipper); 
    Button moreInfo1 = (Button) findViewById(R.id.moreinfobutton1); 
    Button moreInfo2 = (Button) findViewById(R.id.moreinfobutton2); 
    Button moreInfo3 = (Button) findViewById(R.id.moreinfobutton3); 
    Button backButton1 = (Button) findViewById(R.id.backbutton1); 
    Button backButton2 = (Button) findViewById(R.id.backbutton2); 
    Button backButton3 = (Button) findViewById(R.id.backbutton3); 

    moreInfo1.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View view) { 
      flipper.setInAnimation(inFromRightAnimation()); 
      flipper.setOutAnimation(outToLeftAnimation()); 
      flipper.showNext(); 
      } 
     }); 

    moreInfo2.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View view) { 
      flipper.setInAnimation(inFromRightAnimation()); 
      flipper.setOutAnimation(outToLeftAnimation()); 

      //What to put here to change the next View to something else? 
      flipper.showNext(); 
      } 
     }); 

    moreInfo3.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View view) { 
      flipper.setInAnimation(inFromRightAnimation()); 
      flipper.setOutAnimation(outToLeftAnimation()); 
      flipper.showNext(); 
      } 
     }); 

    backButton1.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View view) { 
      flipper.setInAnimation(inFromLeftAnimation()); 
      flipper.setOutAnimation(outToRightAnimation()); 
      flipper.showPrevious();  
     } 
    }); 

    backButton2.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View view) { 
      flipper.setInAnimation(inFromLeftAnimation()); 
      flipper.setOutAnimation(outToRightAnimation()); 
      flipper.showPrevious();  
     } 
    }); 

    backButton3.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View view) { 
      flipper.setInAnimation(inFromLeftAnimation()); 
      flipper.setOutAnimation(outToRightAnimation()); 
      flipper.showPrevious();  
     } 
    }); 

ответ

1

Попробуйте использовать эти методы в ViewFlipper:

public void removeViewAt (int index) 
public void addView (View child, int index, ViewGroup.LayoutParams params) 

Это позволит вам удалить определенный вид вам не нужно больше и добавить еще один.

+0

Спасибо, мне удалось сделать это с помощью этих методов, просто имея начальный в моем xml и добавляя View, который я хотел каждый раз, удаляя его потом –

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