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