2012-02-27 25 views
2

你知道如果我在佈局中設置ViewFlipper,它總是從第一項開始到底部。ViewFlipper並顯示不是第一項onCreate

但是有沒有辦法從「onCreate」的ViewFlipper的第2或第3項開始?

假設計數器== 2,頁面將顯示onCreate項目。

這是我的onCreate和腳蹼。

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.playlist);} 

XML

<ViewFlipper 
    android:id="@+id/flipper" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:inAnimation="@anim/flipin" 
    android:outAnimation="@anim/flipout" >  

    <!-- 1 --> 
<LinearLayout 
    android:id="@+id/one" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:orientation="vertical">    
     <ImageView 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:src="@drawable/airongbg"/> 

</LinearLayout> 
    <!-- 2 --> 
<LinearLayout 
    android:id="@+id/two" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:orientation="vertical"> 

     <ImageView 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:src="@drawable/hopefalls"/> 
</LinearLayout> 
    <!-- 3 -->  
<LinearLayout 
    android:id="@+id/three" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:orientation="vertical"> 

     <ImageView 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:src="@drawable/moon"/> 
</LinearLayout> 

回答

6

使用此

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.playlist); 
    ((ViewFlipper) this.findViewById(R.id.flipper)).setDisplayedChild(1); //1 for 2 Since it accept Ordinal number 
} 
0

首先獲得您想要通過

int id ; 
    id=flipper.indexOfChild(ImageView1); 

//然後調用ITM顯示該項目的位置如

flipper.setDisplayedChild(id); 

you will be able to set the desired item