1

從第一個標籤切換到第二個標籤後出現主要問題。在兩個標籤中應有所不同列表視圖,但似乎這issue我的活動代碼:在TAB中顯示ListView的問題

public class MainActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     ActionBar actionBar = getActionBar(); 
     actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 

     ActionBar.Tab tabFirst = actionBar.newTab().setText("First"); 
     ActionBar.Tab tabSecond = actionBar.newTab().setText("Second"); 

     tabFirst.setTabListener(new tabListener()); 
     tabSecond.setTabListener(new tabListener()); 

     actionBar.addTab(tabFirst); 
     actionBar.addTab(tabSecond); 

     } 

    protected class tabListener implements ActionBar.TabListener { 

     ParkFragment firstFragment; 
     ParkFragment secondFragment; 


     @Override 
     public void onTabUnselected(Tab tab, FragmentTransaction ft) { 

     } 

     @Override 
     public void onTabSelected(Tab tab, FragmentTransaction ft) { 
      switch (tab.getPosition()){ 
      case 0: 
       if (firstFragment == null){ 
        firstFragment = new ParkFragment("Here is first url"); 
        ft.add(R.id.parkfragment, firstFragment,"FIRST"); 
       } 
       else{ 
        ft.attach(firstFragment); 
       } 
       break; 

      case 1: 
       if (secondFragment == null){ 
        secondFragment = new ParkFragment("here is the second one"); 
        ft.add(R.id.parkfragment, secondFragment, "SECOND"); 
       } 
       else{ 
        ft.attach(secondFragment); 
       } 
       break; 
      } 
     } 

     @Override 
     public void onTabReselected(Tab tab, FragmentTransaction ft) { 

     } 
    }; 

    public class ParkFragment extends ListFragment { 
     private ArrayList<Cinemas> cinema; 
     private CinemasAdapter cinemaAdapter; 
     private View v; 
     private String url; 

     public ParkFragment (String cinema){ 
      url = cinema; 
     } 

      public void onCreate(Bundle savedInstanceState) { 
      super.onActivityCreated(savedInstanceState); 

      cinema = new Handler().handle(url); 
      cinemaAdapter = new CinemasAdapter(MainActivity.this, R.layout.movie_data_row, cinema); 
      setListAdapter(cinemaAdapter); 

      } 
     } 

這裏是集裝箱XML代碼:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:baselineAligned="false" 
    android:orientation="vertical" > 

    <FrameLayout 
     android:id="@+id/parkfragment" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" /> 

</LinearLayout> 

謝謝您的閱讀,任何幫助將不勝感激。

回答

0

您需要添加/附加隱藏另一個片段的片段。

public void onTabSelected(Tab tab, FragmentTransaction ft) { 
     switch (tab.getPosition()){ 
     case 0: 
      if (firstFragment == null){ 
       firstFragment = new ParkFragment("Here is first url"); 
       ft.add(R.id.parkfragment, firstFragment,"FIRST"); 
      } 
      else{ 
       ft.attach(firstFragment); 
      } 
      if (secondFragment != null) 
       ft.hide(secondFragment); 
      break; 

     case 1: 
      if (secondFragment == null){ 
       secondFragment = new ParkFragment("here is the second one"); 
       ft.add(R.id.parkfragment, secondFragment, "SECOND"); 
      } 
      else{ 
       ft.attach(secondFragment); 
      } 
      if (firstFragment != null) 
       ft.hide(firstFragment); 
      break; 
     } 
    } 
+0

同樣的事情發生:(也許我必須爲每一個片段不同的看法呢?如果是的話,我應該怎麼實現,在ParkFragment類? – 2013-03-19 08:45:30

1
/** Detaches the androidfragment if exists */ 

       if(secondFragment !=null) 
        ft.detach(secondFragment); 

       /** Detaches the applefragment if exists */ 
       if(firstFragment !=null) 
        ft.detach(firstFragment); 

使用這一個分離片段see this