2017-04-23 3 views
0

J'ai construit ceci pour tester le fonctionnement de mon application sur les périphériques bas de gamme (ayant peu de ressources, ancienne version d'android, etc.), cet indicateur de casse ne fonctionne pas seulement dans ma 2.3 .5 api 10. Ne pas travailler signifie que cela ne me ramène pas à l'activité parentale. Toutefois, un toast est fait pour voir ce qui se passe, cette fois seulement le pain grillé est montré parfaitement sur cet appareil, mais pas encore la navigation à l'activité des parents (activité principale)L'indicateur android - up ne fonctionne pas correctement

Main2Activity:

public class Main2Activity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main2); 


     getSupportActionBar().setDisplayShowHomeEnabled(true); 
     getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

    } 


    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 

     switch (item.getItemId()) { 
      case android.R.id.home: 
       Toast.makeText(this, "Up Button is clicked!", Toast.LENGTH_SHORT).show(); 
       break; 
     } 

     return super.onOptionsItemSelected(item); 
    } 
} 

parent a été mis en Mainefest:

.... 
    <activity 
       android:name=".Main2Activity" 
       android:parentActivityName=".MainActivity"></activity> 
     </application> 
.... 

Encore une fois, cela fonctionne parfaitement sans aucun problème dans les émulateurs et mes autres appareils comme je l'ai testé Nexus 5 (API 19), ne fonctionne pas seulement:

enter image description here

Toast est créé:

enter image description here

Toute idée pourquoi up indicateur n'est pas me ramène à l'activité principale?

Répondre

1

Dans votre onOptionsItemSelected() ajouter NavUtils.navigateUpFromSameTask(this);

retourner aussi vrai consommer l'événement ..

De Documentaiton

void navigateUpFromSameTask (Activity sourceActivity): commodité méthode qui équivaut à appeler navigateUpTo (sourceActivity, getParentActivityIntent (sourceActivity)). SourceActivity sera terminé par cet appel.

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
    // Respond to the action bar's Up/Home button 
    case android.R.id.home: 
     NavUtils.navigateUpFromSameTask(this); 
     Toast.makeText(this, "Up Button is clicked!", Toast.LENGTH_SHORT).show(); 
     return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 

aussi pour soutenir 4 niveaux API - 16, vous pouvez également déclarer l'activité mère avec un élément <meta-data> qui spécifie une valeur pour "android.support.PARENT_ACTIVITY". Par exemple:

<activity 
    android:name="com.example.app.ChildActivity" 
    android:label="@string/title_child_activity" 
    android:parentActivityName="com.example.app.MainActivity" > 
    <!-- Parent activity meta-data to support API level 4+ --> 
    <meta-data 
     android:name="android.support.PARENT_ACTIVITY" 
     android:value="com.example.app.MainActivity" /> 
</activity> 
+0

Enfin, travailler comme un charme ... et résolu mon problème sur cet appareil! Merci –