2013-07-11 31 views
0

我有一個名爲FragmentActivity的Activity類。在活動課內我創建三個按鈕名稱Button1,Button2 & Button3。我有三個片段類名爲Fragment1,Fragment2 & Fragment3滑動以打開活動中顯示的片段類

現在點擊每個按鈕,我在該Activity上設置了一個特定的片段類。我想用滑動來做同樣的事情。我的意思是說打開每個片段類。下面顯示了我使用的代碼。

Fragment_Activity.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

    <LinearLayout 
     android:id="@+id/button_layout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" > 

     <Button 
      android:id="@+id/button1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Button1" /> 

     <Button 
      android:id="@+id/button2" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Button2" /> 

     <Button 
      android:id="@+id/button3" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Button3" /> 

    </LinearLayout> 

    <fragment 
     android:id="@+id/fragment_one" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     class="in.icebreaker.fragments.Fragment1" /> 

    <fragment 
     android:id="@+id/fragment_two" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     class="in.icebreaker.fragments.Fragment2" /> 

    <fragment 
     android:id="@+id/fragment_three" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     class="in.icebreaker.fragments.Fragment3" /> 

</LinearLayout> 

代碼FragmentActivity類

public class FragmentActivity extends Activity 
{ 
    private Fragment1  fragment1; 

    private Fragment2  fragment2; 

    private Fragment3  fragment3; 

    private static final int  FRAGMENT_INDEX1 = 1001; 

    private static final int  FRAGMENT_INDEX2 = 1001; 

    private static final int  FRAGMENT_INDEX3 = 1001; 

    private int      m_CurrentFragment = FRAGMENT_INDEX1; 

    private FragmentTransaction  m_FragmentTransaction; 

    private Button     button1, button2, button3; 

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


     button1 = (Button)findViewById(R.id.button1); 
     button1.setOnClickListener(this); 

     button2 = (Button)findViewById(R.id.button2); 
     button3.setOnClickListener(this); 

     button3 = (Button)findViewById(R.id.button3); 
     button3.setOnClickListener(this); 

     // Create an instance of fragment class 
     fragment1 = (VisitorListFragment)getFragmentManager().findFragmentById(
       R.id.fragment_one); 

     fragment2 = (ChatListFragment)getFragmentManager().findFragmentById(
       R.id.fragment_two); 

     fragment3 = (ChatListFragment)getFragmentManager().findFragmentById(
       R.id.fragment_three); 

     // Set current fragment on the activity 
     setFragment(m_CurrentFragment); 
    } 

    private void setFragment(int currentFragment) 
    { 
     m_CurrentFragment = currentFragment; 
     m_FragmentTransaction = getFragmentManager().beginTransaction(); 

     if (m_CurrentFragment == FRAGMENT_INDEX1) 
     { 
      m_FragmentTransaction.show(fragment1); 
      m_FragmentTransaction.hide(fragment2); 
      m_FragmentTransaction.hide(fragment3); 
     } 
     else if (m_CurrentFragment == FRAGMENT_INDEX2) 
     { 
      m_FragmentTransaction.show(fragment2); 
      m_FragmentTransaction.hide(fragment1); 
      m_FragmentTransaction.hide(fragment3); 
     } 

     else if (m_CurrentFragment == FRAGMENT_INDEX3) 
     { 
      m_FragmentTransaction.show(fragment3); 
      m_FragmentTransaction.hide(fragment1); 
      m_FragmentTransaction.hide(fragment2); 
     } 

     m_FragmentTransaction.commit(); 
    } 

    @Override 
    public void onClick(View v) 
    {  
     switch (v.getId()) 
     { 
      case R.id.button1: 
      { 
       setFragment(fragment1); 
       break; 
      } 
      case R.id.button2: 
      { 
       setFragment(fragment2); 
       break; 
      } 
      case R.id.button3: 
      { 
       setFragment(fragment3); 
       break; 
      } 
     } 
    } 
} 

回答

0
+0

在我的需求標籤不允許使用。我們只能使用按鈕。那麼有辦法做到這一點。如果可能的話給我示例。 – Rahul

+0

你只能使用viewpager:http://developer.android.com/training/animation/screen-slide.html – mromer

+0

對不起,該教程很容易遵循。你需要什麼需要一定程度的機器人 – mromer