2014-06-17 35 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

非常感谢。我试试看! –

相关问题