2013-04-29 136 views
0

獲取元素我在.xml文件中定義的佈局視圖稱爲menu_list_slide_lateral.xml:從滑動菜單

setBehindContentView(R.layout.menu_list_slide_lateral); 
setSlidingActionBarEnabled(true);  
slideMenu = getSlidingMenu(); 
slideMenu.setMode(SlidingMenu.LEFT); 
slideMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); 
slideMenu.setShadowWidthRes(R.dimen.shadow_width); 
slideMenu.setBehindOffset(100); 
slideMenu.setFadeDegree(0.35f); 

和MI活動從SlidingFragmentActivity延伸:

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

    <Button 
     android:id="@+id/btnSliBebe" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:text="@string/bebe" /> 

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

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

    <Button 
     android:id="@+id/button4" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:text="@string/ajustes" /> 

</LinearLayout> 

我可是從代碼創建SlidingMenu :

public class TimelineActivity extends SlidingFragmentActivity 

它完美地展示了菜單,但我想,當用戶選擇做一些動作從菜單中的選項:

sliding menu options

例如,我想打開另一個活動時,我選擇了「貝貝」選項。 我打算給onClick事件設置爲按鈕,但它似乎沒有工作,它使沒有什麼:

inflater = getLayoutInflater(); 
item = inflater.inflate(R.layout.menu_list_slide_lateral, null); 


btnSliBebe = (Button) item.findViewById(R.id.btnSliBebe); 
btnSliBebe.setOnClickListener(new OnClickListener(){ 
    @Override 
    public void onClick(View arg0) { 

     Log.e(TAG, "boton bebe"); 

    } 
}); 

我如何訪問按鈕和ASIGN他們一個事件?

謝謝!

+0

中瀏覽示例的源代碼。您應該使用ListFragment作爲菜單。然後使用list fragment的click方法執行此操作。 – alicanbatur 2013-07-15 09:05:02

回答

0

你應該做的是爲幻燈片菜單創建單獨的片段,它將包含你的佈局R.layout.menu_list_slide_lateral並處理動作。這很容易做到。 現在,當你有這個片段,你需要將它插入到你的幻燈片活動。

您使用的setBehindContentView是菜單的佔位符。所以創建一個簡單的佈局來保存你的菜單片段。例如。叫它R.layout.menu_frame,它應該是這樣的:

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

然後在你的滑動活動設置R.layout.menu_frame爲behindContentView並添加菜單片段到這一觀點。

public class BaseSlidingActivity extends SlidingFragmentActivity { 

protected MenuFragment mSlidingMenuFragment; 
private SlidingMenu mSlidingMenu; 


@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    // set the Behind View 
    setBehindContentView(R.layout.menu_frame); 

    //if we create new menu - create new MenuFragment and insert it into   
      //menu_frame 
    if (savedInstanceState == null) { 
     FragmentTransaction t = this.getSupportFragmentManager().beginTransaction(); 
     mSlidingMenuFragment = new MenuFragment(); 
     t.replace(R.id.menu_frame, mSlidingMenuFragment); 
     t.commit(); 
    } 
      //if activity was restored(e.g. on orientation change) find it in fragment 
      //manager 
      else { 
     mSlidingMenuFragment = (MenuFragment) this.getSupportFragmentManager().findFragmentById(R.id.menu_frame); 
    } 

    // customize the SlidingMenu 
    mSlidingMenu = getSlidingMenu(); 
    mSlidingMenu.setShadowWidthRes(R.dimen.shadow_width); 
    mSlidingMenu.setShadowDrawable(R.drawable.shadow); 
    mSlidingMenu.setBehindOffsetRes(R.dimen.slidingmenu_offset); 
    mSlidingMenu.setFadeDegree(0.35f); 
    mSlidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); 


} 

我希望它有幫助。您可以在github slidinfmenu example