2011-07-14 2 views
0

je besoin d'aide pour faire quelque chose que je suis sûr est simple, mais je ne peux pas comprendre comment le faire. J'ai un contre-bas et quand il arrive aux 60 dernières secondes, il appelle une activité de compteur «lastminute». Le plan est de chevaucher les 60 dernières secondes sur l'application réelle. Voici le problème, comment puis-je changer le code pour permettre aux deux activités de démarrer en même temps. J'ai essayé ceci;Exécution de deux activités en même temps sur l'écran

public void onFinish() { 
    startActivity(new Intent ("eu.merso.phoneapp.LASTMINUTE")); 
    startActivity(new Intent ("eu.merso.phoneapp.DASHBOARD")); 
    onDestroy(); 
} 

mais cela ne met pas les applications sur l'écran, ce que je veux est DASHBOARD sur le fond et Lastminute sur le dessus. LASTMINUTE est déjà une "couleur de transparence".

Merci; Ramón

+0

Vous pourriez essayer d'utiliser un dialogue personnalisé pour lastminute – mibollma

Répondre

2

Il ne fonctionne pas la façon dont vous en train d'essayer de le faire. Il ne peut y avoir qu'une seule activité visible à la fois.

Vous devez tout d'abord commencer l'activité du tableau de bord et à partir de là, vous devriez commencer lastminute.

Edition -

Utilisez un objet Bundle.

Bundle bundle = new Bundle(); 

// Use 0 when the activity is called by the button and 
// 1 when it is called by the timer. 
bundle.putInt("event_src", 0); 
intentObject.putExtras(bundle); 

// In your new activity you can then check whether to display 
// the countdown or not 
Int eventSrc = getIntent().getExtras().getInt("event_src") 
+0

Cela me pose un problème. Le tableau de bord peut être appelé à partir d'un bouton ou de la minuterie; s'il est appelé à partir du bouton, le compteur 60 secondes (lastminute) ne doit pas s'afficher. appel lastminute de tableau de bord ne fonctionnera que si je peux savoir qui appeler l'activité (ou la touche minuterie) et peut émettre et si la déclaration –

+0

j'ai mis à jour ma réponse. Devrait être capable de le réparer avec ce code. – Charles

0

Essayez d'utiliser android:theme="@android:style/Theme.Translucent.NoTitleBar dans les attributs d'activité pour LastMinute dans AndroidManifest.xml. J'espère que ce sera productif.

+0

Merci, cela fonctionne, mais présente le même problème que j'ai discuté sur la réponse 1. Le compteur LASTMINUTE est à chaque démarrage, j'en ai seulement besoin quand il est appelé par timer, et pas quand DASHBOARD est démarré par le timer. –

1

Vous devez implémenter la fonctionnalité dans lastminute une boîte de dialogue que vous créez et de montrer dans la méthode onCreate de l'activité de votre tableau de bord.

EDIT: Pour distinguer entre lesquelles une activité qui commence cette nouvelle activité, utilisez extras intention:

//in your calling activity  
Intent i = new Intent(A.this, B.class); 
i.putExtra("from Activity", A.class.getSimpleName()); 
startActivity(i); 


//in your receiving activity 
String from = getIntent().getStringExtra(); 

if(from.equals(A.class.getSimpleName())){ 
//do something 
} 
else if(from.equals(C.class.getSimpleName())){ 
//do something 
} 
+0

Merci pour la réponse, mais cela présente le problème en tant que première solution. Y at-il un moyen de savoir quelle activité a appelé une autre activité? Si c'est possible, alors je peux créer et if..else déclaration; donc quand appelez mais le bouton, les 60 secondes ne montrent pas, mais quand appelez par le temps, alors les 60 secondes montreront. –

+0

@ Ramón Díaz - Voir ma mise à jour – Marmoy

+0

Merci, j'ai trouvé cette solution sur un autre affichage sur le site et c'est plus ou moins ce que j'ai fait et ça fonctionne parfaitement. Lorsque le tableau de bord est appelé à partir du bouton, il n'y a pas de dernière minute, mais quand il est appelé à partir de la minuterie, je peux voir les 60 dernières secondes. MERCI pour toute l'aide. –

Questions connexes