2014-06-17 34 views
1

在我的應用程序中使用NavigationDrawer我不知道是否有可能我執行單擊某些按鈕時可能導航的抽屜列表項目?NavigationDrawer - 是否可以在程序中模擬(執行)點擊

slideMenuItems = new ArrayList<NavDrawerModel>(); 

    slideMenuItems.add(new NavDrawerModel("People")); 
    slideMenuItems.add(new NavDrawerModel("Products")); 

slideMenuAdapter = new NavDrawerAdapter(getApplicationContext(), R.layout.drawer_list_item, slideMenuItems); 
    drawerList.setAdapter(slideMenuAdapter); 

    drawerList.setOnItemClickListener(new SlideMenuClickListener()); 


private class SlideMenuClickListener implements ListView.OnItemClickListener { 
    @Override 
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
     // Do some stuff here 

    } 
+0

只需調用它們的功能就可以點擊它們。 – berserk

+0

其複雜。每個按鈕都會啓動一系列不同的數據庫操作和操作,這些操作和操作都會在導航菜單中糾結,所以我不能將它們作爲方法提取出來,如果我重寫它們,很多代碼會重複執行,謝謝。 –

回答

1

呼叫performItemClickListView

public boolean performItemClick (View view, int position, long id) 

Added in API level 1 

Call the OnItemClickListener, if it is defined. Performs all normal actions associated with clicking: reporting accessibility event, playing a sound, etc. 

Parameters 

view The view within the AdapterView that was clicked. 
position The position of the view in the adapter. 
id The row id of the item that was clicked. 

Returns 
True if there was an assigned OnItemClickListener that was called, false otherwise is returned. 

如何使用:

int position = 5; 
listView.performItemClick( 
    yourAdapter.getView(position, null, null), 
    position, 
    yourAdapter.getItemId(position) 
); 

請記住,如果您使用自定義適配器正確地覆蓋getItemId

+0

非常感謝。我試試看! –

相關問題