android:whay setOnItemClickListener在getLayoutInflater()中不起作用。充气

android:whay setOnItemClickListener在getLayoutInflater()中不起作用。充气,android,Android,我正在创建一个应用程序,所有活动都需要相同的导航抽屉。为此,我创建了一个扩展活动(需要子类)的类,并编写了导航抽屉的代码。但在Setonic中不起作用 这是我的工作 public class MyDrawer extends AppCompatActivity { ActionBarDrawerToggle toggle; protected RelativeLayout fullLayout; protected FrameLayout frameLayout; @Override publi

我正在创建一个应用程序,所有活动都需要相同的导航抽屉。为此,我创建了一个扩展活动(需要子类)的类,并编写了导航抽屉的代码。但在Setonic中不起作用

这是我的工作

public class MyDrawer extends AppCompatActivity {
ActionBarDrawerToggle toggle;
protected RelativeLayout fullLayout;
protected FrameLayout frameLayout;
@Override
public void setContentView(final int layoutResID) {
    fullLayout = (RelativeLayout) getLayoutInflater().inflate(R.layout.mydrawer, null);
    frameLayout = (FrameLayout) fullLayout.findViewById(R.id.drawer_frame);
    getLayoutInflater().inflate(layoutResID, frameLayout, true);
    super.setContentView(fullLayout);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    //setSupportActionBar(toolbar);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    getSupportActionBar().setHomeButtonEnabled(true);
    final DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout3);
    toggle = new ActionBarDrawerToggle(
            this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
    drawer.setDrawerListener(toggle);
    toggle.syncState();
    final NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
    navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
        @Override
        public boolean onNavigationItemSelected(MenuItem menuItem) {
            drawer.closeDrawers();
            int itemId = menuItem.getItemId();
            Toast.makeText(getApplicationContext(), menuItem.getTitle().toString(),
                    Toast.LENGTH_LONG).show();
            //navigationView.getMenu().findItem(R.id.drawer_5_reasons).setChecked(true);
            return true;
        }
    });
}
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
    if (toggle.onOptionsItemSelected(item))
    {
        return true;
    }
    return super.onOptionsItemSelected(item);
}
}

xml:

但在中找不到项

 listView.setAdapter(dataAdapter);
 listView.setOnItemClickListener(new OnItemClickListener() {
 @Override
 public void onItemClick(AdapterView<?> listView, View view,
                      int position, long id) {
 // Get the cursor, positioned to the corresponding row in the result set
 Cursor cursor = (Cursor) listView.getItemAtPosition(position);
listView.setAdapter(dataAdapter);
setOnItemClickListener(新的OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView列表视图、视图、,
内部位置,长id){
//获取光标,定位到结果集中的对应行
游标游标=(游标)listView.getItemAtPosition(位置);

我不明白listView与您的导航抽屉有什么关系。 如果您试图在导航抽屉的项目上设置onItemClickListener,则应在setNavigationItemSelectedListener中设置它,并在NavigationItemSelected()上执行任何您想要的操作


由于导航抽屉对于扩展MyDrawer类的所有活动都是相同的,所以我假设所有活动的函数都是相同的。如果不是,您可以调用相同的方法(setUpDrawerContent(NavigationView nv)),在子活动中。

这是什么意思?查看布局xml,navigationview只是一个navigationview。也许可以显示listView的来源?
public class yourclass extends MyDrawer {
 listView.setAdapter(dataAdapter);
 listView.setOnItemClickListener(new OnItemClickListener() {
 @Override
 public void onItemClick(AdapterView<?> listView, View view,
                      int position, long id) {
 // Get the cursor, positioned to the corresponding row in the result set
 Cursor cursor = (Cursor) listView.getItemAtPosition(position);
private void setUpDrawerContent(NavigationView navigationView){
    navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
        @Override
        public boolean onNavigationItemSelected(MenuItem menuItem) {
            doWhateverYouWant(menuItem);
            return true;
        }
    });
}