Android 抽屉布局上的onClick侦听器不工作
我试图实现抽屉布局,但单击列表中的一个项目时,它不会将我带到另一个方法。我不知道这有什么问题。 这是我的密码Android 抽屉布局上的onClick侦听器不工作,android,drawerlayout,Android,Drawerlayout,我试图实现抽屉布局,但单击列表中的一个项目时,它不会将我带到另一个方法。我不知道这有什么问题。 这是我的密码 mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); mDrawerList = (ListView) findViewById(R.id.list_slidermenu); navDrawerItems = new ArrayList<NavDrawerItem>();
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
mDrawerList = (ListView) findViewById(R.id.list_slidermenu);
navDrawerItems = new ArrayList<NavDrawerItem>();
// adding nav drawer items to array
// Home
navDrawerItems.add(new NavDrawerItem(navMenuTitles[0], navMenuIcons.getResourceId(0, -1)));
// Find People
navDrawerItems.add(new NavDrawerItem(navMenuTitles[1], navMenuIcons.getResourceId(0, -1)));
// Photos
navDrawerItems.add(new NavDrawerItem(navMenuTitles[2], navMenuIcons.getResourceId(2, -1)));
// Communities, Will add a counter here
navDrawerItems.add(new NavDrawerItem(navMenuTitles[3], navMenuIcons.getResourceId(0, -1)));
// Pages
navDrawerItems.add(new NavDrawerItem(navMenuTitles[4], navMenuIcons.getResourceId(0, -1)));
// What's hot, We will add a counter here
navDrawerItems.add(new NavDrawerItem(navMenuTitles[5], navMenuIcons.getResourceId(0, -1)));
adapter = new NavDrawerListAdapter(getApplicationContext(),
navDrawerItems);
mDrawerList.setAdapter(adapter);
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setDisplayShowHomeEnabled(true);
mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
R.drawable.ic_drawer,
R.string.app_name,
R.string.app_name
) {
public void onDrawerClosed(View view) {
getActionBar().setTitle(mTitle);
// calling onPrepareOptionsMenu() to show action bar icons
invalidateOptionsMenu();
}
public void onDrawerOpened(View drawerView) {
getActionBar().setTitle(mDrawerTitle);
// calling onPrepareOptionsMenu() to hide action bar icons
invalidateOptionsMenu();
}
};
mDrawerLayout.setDrawerListener(mDrawerToggle);
mDrawerList.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v,
int position, long id) {
// TODO Auto-generated method stub
displayView(position);
}
});
private void displayView(int position) {
// update the main content by replacing fragments
Intent i = null;
Bundle extras1 = new Bundle();
switch (position) {
case 0:
break;
case 1:
i = new Intent(TimeSheetEntry.this,
Expense.class);
extras1.putString("Name", objClsTracnsactions.getStrUserName());
extras1.putString("BranchCode",
objClsTracnsactions.getStrBranchCode());
extras1.putString("EmpId", objClsTracnsactions.getStrEmpId());
extras1.putString("EmpType",
objClsTracnsactions.getStrEmpType());
i.putExtras(extras1);
break;
case 2:
//fragment = new PhotosFragment();
break;
case 3:
//fragment = new CommunityFragment();
break;
case 4:
//fragment = new PagesFragment();
break;
case 5:
//fragment = new WhatsHotFragment();
break;
default:
break;
}
if (i != null) {
// update selected item and title, then close the drawer
mDrawerList.setItemChecked(position, true);
mDrawerList.setSelection(position);
setTitle(navMenuTitles[position]);
mDrawerLayout.closeDrawer(mDrawerList);
startActivity(i);
finish();
} else {
// error in creating fragment
Log.e("MainActivity", "Error in creating fragment");
}
}
mDrawerLayout=(抽屉布局)findViewById(R.id.drawer\u布局);
mDrawerList=(ListView)findViewById(R.id.list\u slidermenu);
navDrawerItems=新的ArrayList();
//将导航抽屉项添加到阵列
//家
添加(新的NavDrawerItem(navMenuTitles[0],navMenuIcons.getResourceId(0,-1));
//找人
添加(新的NavDrawerItem(navMenuTitles[1],navMenuIcons.getResourceId(0,-1));
//照片
添加(新的NavDrawerItem(navMenuTitles[2],navMenuIcons.getResourceId(2,-1));
//社区,将在此处添加一个计数器
add(新的NavDrawerItem(navMenuTitles[3],navMenuIcons.getResourceId(0,-1));
//页数
添加(新的NavDrawerItem(navMenuTitles[4],navMenuIcons.getResourceId(0,-1));
//什么是热的,我们将在这里加一个计数器
add(新的NavDrawerItem(navMenuTitles[5],navMenuIcons.getResourceId(0,-1));
适配器=新的NavDroperListAdapter(getApplicationContext(),
纳维特姆斯);
mDrawerList.setAdapter(适配器);
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setDisplayShowHomeEnabled(true);
mDrawerToggle=新操作BarDrawerToggle(此,mDrawerLayout,
R.可抽出式ic_抽屉,
R.string.app_名称,
R.string.app\u名称
) {
公共无效onDrawerClosed(视图){
getActionBar().setTitle(mTitle);
//调用onPrepareOptions菜单()以显示操作栏图标
无效操作菜单();
}
打开图纸上的公共空白(视图抽屉视图){
getActionBar().setTitle(mDrawerTitle);
//调用onPrepareOptions菜单()隐藏操作栏图标
无效操作菜单();
}
};
mDrawerLayout.setDrawerListener(mDrawerToggle);
setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView父视图、视图v、,
内部位置,长id){
//TODO自动生成的方法存根
显示视图(位置);
}
});
私有void显示视图(内部位置){
//通过替换片段更新主要内容
意图i=无效;
Bundle extras1=新Bundle();
开关(位置){
案例0:
打破
案例1:
i=新的意图(时间表),
费用(类别);
extras1.putString(“Name”,objClsTracnsactions.getStrUserName());
extras1.putString(“BranchCode”,
getStrBranchCode());
extras1.putString(“EmpId”,objclstracsactions.getStrEmpId());
extras1.putString(“EmpType”,
objclstracsactions.getStrEmpType());
i、 putExtras(extras1);
打破
案例2:
//片段=新片段();
打破
案例3:
//fragment=新社区fragment();
打破
案例4:
//fragment=新页面片段();
打破
案例5:
//fragment=新WhatsHotFragment();
打破
违约:
打破
}
如果(i!=null){
//更新所选项目和标题,然后关闭抽屉
mDrawerList.setItemChecked(位置,true);
mDrawerList.setSelection(职位);
setTitle(导航工具[位置]);
mDrawerLayout.closeDrawer(mDrawerList);
星触觉(i);
完成();
}否则{
//创建片段时出错
Log.e(“MainActivity”,“创建片段时出错”);
}
}
这是我的xml文件
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginBottom="5dp"
android:layout_marginLeft="2dp"
android:layout_marginTop="5dp">
<View
android:layout_width="wrap_content"
android:layout_height="1dip"
android:layout_marginTop="1dp"
android:background="@drawable/divider_line" />
<ListView
android:id="@+id/list_slidermenu"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="left"
android:choiceMode="singleChoice"
android:divider="@color/list_divider"
android:dividerHeight="1dp"
android:listSelector="@drawable/list_selector"
android:background="@color/list_background"/>
<ScrollView
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="@color/white">
<TableLayout
android:id="@+id/tableLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:shrinkColumns="1"
android:stretchColumns="1" >
请务必告诉我哪里出了问题我觉得您的代码很好。但是我没有看到您的适配器代码 您的列表适配器中有按钮吗?我看不到您的列表适配器代码,所以我猜这可能是问题所在
有一个线程正在讨论按钮问题。您是否尝试在单击侦听器中显示日志以确保它未被调用?我检查了…它未被调用。调试器点也不会进入该方法。