DrawerLayout OnClickListener 不触发
DrawerLayout OnClickListener Not Triggering
我正在使用 Android DrawerLayout 并有一个包含我的抽屉项目的列表视图。
我正在尝试实现 OnClickListener 但无济于事,Toast 未触发:
mDrawerList = (ListView) findViewById(R.id.left_drawer);
ArrayList<String> drawerTitleArray = new ArrayList<>();
drawerTitleArray.add(0, "TEST");
drawerTitleArray.add(1, "TEST 1");
// Set the adapter for the list view
mDrawerList.setAdapter(new ArrayAdapter<>(this,
R.layout.drawer_list_item,
drawerTitleArray));
mDrawerList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
switch (adapterView.getId()){
case 0:
Toast.makeText(getApplicationContext(),"CLICKED 0",Toast.LENGTH_SHORT).show();
}
}
});
问题出在 switch
表达式中。 adapterView.getId()
将 return ListView
的 View
ID,对确定单击的项目没有任何用处。
您想切换项目在列表中的位置,它作为 onItemClick()
中的第三个参数传递。它在您的代码段中被命名为 i
,但通常被命名为 position
,这样可以提供更多信息。
我正在使用 Android DrawerLayout 并有一个包含我的抽屉项目的列表视图。
我正在尝试实现 OnClickListener 但无济于事,Toast 未触发:
mDrawerList = (ListView) findViewById(R.id.left_drawer);
ArrayList<String> drawerTitleArray = new ArrayList<>();
drawerTitleArray.add(0, "TEST");
drawerTitleArray.add(1, "TEST 1");
// Set the adapter for the list view
mDrawerList.setAdapter(new ArrayAdapter<>(this,
R.layout.drawer_list_item,
drawerTitleArray));
mDrawerList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
switch (adapterView.getId()){
case 0:
Toast.makeText(getApplicationContext(),"CLICKED 0",Toast.LENGTH_SHORT).show();
}
}
});
问题出在 switch
表达式中。 adapterView.getId()
将 return ListView
的 View
ID,对确定单击的项目没有任何用处。
您想切换项目在列表中的位置,它作为 onItemClick()
中的第三个参数传递。它在您的代码段中被命名为 i
,但通常被命名为 position
,这样可以提供更多信息。