2010-05-02 61 views
2

我想爲我的應用程序設置一些類似菜單的導航器。如何使用ListView和ViewFlipper在Android應用中導航用戶?

在主頁面有一個listView,它包含兩個項目,點擊每個項目都會用ViewFlipper顯示它的子視圖,如果用戶點擊後退按鈕,他會再次返回主頁。

問題是如何使它,我只能使用ViewFlipper翻轉到下一個屏幕或prev屏幕,如何管理這些子視圖在這裏?如何把他們放在我的佈局XML文件?

回答

3

這裏遵循psudo的方式來做到這一點。

//在OnCreate中,向您的列表視圖添加一個點擊監聽器,使視圖翻轉到下一個視圖。

viewflipper = (ViewFlipper) findViewById(R.id.viewflipper); 
listview = (ListView) findViewById(R.id.listview); 


listview.setOnItemClickListener(new OnItemClickListener(){ 
    public void onItemClick(AdapterView<?> a, View v, int position, long id) { 
    viewflipper.showNext(); 

}); 

//覆蓋您的onKeyDown Activty處理後退按鈕單擊。

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 
     if(viewflipper.getVisibleChild() != 0){ 
      viewflipper.showPrevious(); 
      return true; 
     } 
    } 
    return super.onKeyDown(keyCode, event); 
} 

// XML的viewflipper聖維特列表視圖爲「第一頁」和一個簡單的TextView「第二頁」

<ViewFlipper android:id="@+id/viewflipper" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     > 
     <ListView android:id="@+id/listview" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
     /> 
     <TextView android:id="@+id/secondview" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:text="This is the second view" 
     /> 
</ViewFlipper> 
+2

那你鏈接到一個特定例子是有點老(2008年8月) ,更不用說從原來的AndroidGuys文章中剔除。以下是該帖子中保持更新的兩個示例的鏈接:http://github.com/commonsguy/cw-android/tree/master/Fancy/Flipper1/ http://github.com/commonsguy/ cw-android/tree/master/Fancy/Flipper2/ – CommonsWare 2010-05-02 11:53:29

+0

感謝您的回答。但我需要的是一點點複雜。因爲導航不總是線性的,例如,HOME-> A | B | C - >如果選擇了A - > a1 | a2 |,如果選擇了B - > b1 | b2。如果我有所有預定義的A | B | C | a1 | a2 | b1 | b2視圖,我如何將所有這些視圖放入該ViewFlipper中,或者如果其中一些像a2,b1是通過從Internet獲取數據動態創建的,我呢? – virsir 2010-05-03 02:08:24

+0

如果我理解正確,可以將2個listviews添加到viewflipper。第一個列表視圖顯示A,B,C,當你點擊任何一個翻轉到第二個列表視圖的子項a1,a2,a3 ...如果你點擊B,你可以使用相同的列表視圖來顯示b1,b2被用於a1,a2,a3等... – 2010-05-03 07:06:26