Navigationsleiste Objekte, die nicht registriert sind, klicken auf Ereignis
Ich bin kämpfen, um die Navigation Schublade Gegenstände zu registrieren und zu starten und die Absicht für eine neue Aktivität.
Die Schublade öffnet Ordnung und wird korrekt angezeigt, aber es passiert nichts wenn ich auf die Elemente in der Liste.
Hier ist mein code stammt aus der google-tutorials.
mTitle = mDrawerTitle = getTitle();
mTitles = getResources().getStringArray(R.array.menu_items);
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
mDrawerList = (ListView) findViewById(R.id.left_drawer);
//set a custom shadow that overlays the main content when the drawer opens
mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START);
//set up the drawer's list view with items and click listener
mDrawerList.setAdapter(new ArrayAdapter<String>(this,
R.layout.drawer_list_item, mTitles));
mDrawerList.setOnItemClickListener(new DrawerItemClickListener());
//enable ActionBar app icon to behave as action to toggle nav drawer
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setHomeButtonEnabled(true);
//ActionBarDrawerToggle ties together the the proper interactions
//between the sliding drawer and the action bar app icon
mDrawerToggle = new ActionBarDrawerToggle(
this, /* host Activity */
mDrawerLayout, /* DrawerLayout object */
R.drawable.ic_drawer, /* nav drawer image to replace 'Up' caret */
R.string.drawer_open, /* "open drawer" description for accessibility */
R.string.drawer_close /* "close drawer" description for accessibility */
) {
public void onDrawerClosed(View view) {
getActionBar().setTitle(mTitle);
invalidateOptionsMenu(); //creates call to onPrepareOptionsMenu()
}
public void onDrawerOpened(View drawerView) {
getActionBar().setTitle(mDrawerTitle);
invalidateOptionsMenu(); //creates call to onPrepareOptionsMenu()
}
};
mDrawerLayout.setDrawerListener(mDrawerToggle);
//if (savedInstanceState == null) {
selectItem(0);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main, menu);
return super.onCreateOptionsMenu(menu);
}
/* Called whenever we call invalidateOptionsMenu() */
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
//If the nav drawer is open, hide action items related to the content view
boolean drawerOpen = mDrawerLayout.isDrawerOpen(mDrawerList);
// menu.findItem(R.id.action_websearch).setVisible(!drawerOpen);
return super.onPrepareOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
//The action bar home/up action should open or close the drawer.
//ActionBarDrawerToggle will take care of this.
if (mDrawerToggle.onOptionsItemSelected(item)) {
return true;
}
return super.onOptionsItemSelected(item);
}
/* The click listner for ListView in the navigation drawer */
private class DrawerItemClickListener implements ListView.OnItemClickListener {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
selectItem(position);
}
}
private void selectItem(int position) {
switch (position) {
case 1:
new DataTask(MainActivity.this).execute();
MainActivity.this.finish();//Set this Activity to Finish so no loop back
Intent intent=new Intent(MainActivity.this,SplashScreen.class);
startActivity(intent);
break;
case 2:
//ft.replace(R.id.content_frame, new SecondFragment());
// setTitle("Second");
break;
case 3:
//ft.replace(R.id.content_frame, new ThirdFragment());
// setTitle("Third");
break;
default:
break;
}
//update selected item and title, then close the drawer
mDrawerList.setItemChecked(position, true);
//setTitle(mTitles[position]);
mDrawerLayout.closeDrawer(mDrawerList);
}
@Override
public void setTitle(CharSequence title) {
mTitle = title;
getActionBar().setTitle(mTitle);
}
/**
* When using the ActionBarDrawerToggle, you must call it during
* onPostCreate() and onConfigurationChanged()...
*/
@Override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
//Sync the toggle state after onRestoreInstanceState has occurred.
mDrawerToggle.syncState();
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
//Pass any configuration change to the drawer toggls
mDrawerToggle.onConfigurationChanged(newConfig);
}
/**
* Fragment that appears in the "content_frame", shows a planet
*/
public static class PlanetFragment extends Fragment {
public static final String ARG_PLANET_NUMBER = "planet_number";
public PlanetFragment() {
//Empty constructor required for fragment subclasses
}
// @Override
/* public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_planet, container, false);
int i = getArguments().getInt(ARG_PLANET_NUMBER);
String planet = getResources().getStringArray(R.array.planets_array)[i];
int imageId = getResources().getIdentifier(planet.toLowerCase(Locale.getDefault()),
"drawable", getActivity().getPackageName());
((ImageView) rootView.findViewById(R.id.image)).setImageResource(imageId);
getActivity().setTitle(planet);
return rootView; */
}
Wenn Sie können helfen, die groß sein würde, wie ich wirklich bin ziehen meine Haare. Danke.
Kommentar zu dem Problem
Ist Ihre selectItem () - Methode aufgerufen wird? Kommentarautor: Endzeit
Ja es ist so die Aktivität beginnt? aber nicht, wenn ich auf ein Listenelement. Kommentarautor: J4C3N-14
Ich weiß nicht, wo der Fehler Auftritt, aber ich würde das lassen, meine Aktivitäten umzusetzen, die ListView.OnItemClickListener legen Sie die onClickListener der ListView zu das und implementieren das onItemClick() - Methode in Ihrer Aktivität anstelle einer separaten Klasse. Kommentarautor: Endzeit
Vielen Dank für deine Hilfe, ok, wie kann ich einen Verweis auf das Element geklickt wird? Kommentarautor: J4C3N-14
wenn Sie nicht bekommen, Ihre Antwort noch posten xml-Datei, denke ich kann dir helfen, denn ich hatte dieses problem auch und ich den Fehler beheben Kommentarautor: Shayan Pourvatan
InformationsquelleAutor der Frage J4C3N-14 | 2014-02-21
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das problem ist die z-Anordnung. Wenn Sie die Liste erweitern in
onDrawerOpened
setzen:In diesem Beitrag erklärt das problem und wie es zu beheben:
http://vardhan-justlikethat.blogspot.com.es/2014/05/android-custom-navigation-drawer-not.html
InformationsquelleAutor der Antwort user3798518
Behoben, die ein ähnliches Problem durch hinzufügen
drawerView.bringToFront();
zuInformationsquelleAutor der Antwort aobrazcova
Wenn man die Liste in der Navigation Schublade, dann schreiben Sie einfach den code, und stellen Sie clickable listview:
InformationsquelleAutor der Antwort Kunal
Sollten Sie überprüfen, ob Sie
android:animateLayoutChanges="true"
Attribut auf ListView-Elternteil(in der layout-Ressource).Das entfernen dieses Attribut für mich gearbeitet.
InformationsquelleAutor der Antwort user157745
Scheint es, wie die Ihre
DrawerItemClickListener.class
funktioniert nicht als die einzige Zeit, dieselectItem()
Methode aufgerufen wird, ist Sie am Ende Ihrer AktivitätenonCreate()
beiselectItem(0);
Statt
können Sie
this
als parameter und lassen SieActivity
Umsetzung derListView.OnItemClickListener
selbst.InformationsquelleAutor der Antwort Endzeit
Ich hatte auch ein problem mit reagiert nicht auf Klicks die navigation Treiber. Irgendwie habe ich eine Lösung gefunden: problem wurde in der XML-Datei. Ich nutzte diese und mein problem war Weg:
hoffen, dass dies nützlich sein.
InformationsquelleAutor der Antwort obolsh