2012-03-12 6 views
3

J'ai une activité avec une fenêtre popup personnalisée (style quickaction). Il y a quelques boutons menant à d'autres activités. Je veux fermer popup après avoir appuyé sur le bouton (à propos ou par courriel) dans cette fenêtre contextuelle (maintenant quand je reviens à la popup apparaît à nouveau).Comment fermer la fenêtre contextuelle?

public class FirstActivity extends Activity implements OnClickListener { 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

       // some code 

    Button quickButton = (Button) findViewById(R.id.button_quickaction); 

    quickButton.setOnClickListener(this); 

    final ActionItem about = new ActionItem(); 
    final ActionItem email = new ActionItem(); 

    quickButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      QuickAction qa = new QuickAction(v); 

      qa.addActionItem(about); 
      qa.addActionItem(email); 
      qa.setAnimStyle(QuickAction.ANIM_GROW_FROM_RIGHT); 

      qa.show(); 
     } 
    }); 


    about.setTitle("About"); 
    about.setIcon(getResources().getDrawable(R.drawable.about)); 
    about.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      //some code 
     } 
    }); 

    email.setTitle("Email"); 
    email.setIcon(getResources().getDrawable(R.drawable.email)); 
    email.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      //some code 
     } 
    }); 

} 

} 

S'il vous plaît, aidez.


Ajouté:

je besoin de quelque chose comme ceci:

about.setTitle("About"); 
    about.setIcon(getResources().getDrawable(R.drawable.about)); 
    about.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      qa.dismiss(); 
     } 
    }); 

Mais qa ne peut pas être résolu. Même si j'ajoute final à QuickAction qa = new QuickAction(v);.

Répondre

2

essayez finish() sur la méthode onClick du bouton.

mise à jour:

QuickAction qa; 
quickButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      qa = new QuickAction(v); 

      qa.addActionItem(about); 
      qa.addActionItem(email); 
      qa.setAnimStyle(QuickAction.ANIM_GROW_FROM_RIGHT); 

      qa.show(); 
     } 
    }); 


    about.setTitle("About"); 
    about.setIcon(getResources().getDrawable(R.drawable.about)); 
    about.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      if(qa.isShowing()) 
       qa.dismiss(); 
      //some code 
     } 
    }); 

    email.setTitle("Email"); 
    email.setIcon(getResources().getDrawable(R.drawable.email)); 
    email.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      if(qa.isShowing()) 
       qa.dismiss(); 
      //some code 
     } 
    }); 

vous pouvez aussi mettre private QuickAction qa; à votre activité.

+0

Ce n'est pas la solution car après je retourne à l'activité avec popup, il (activité avec popup) se ferme. – Sabre

+0

vous pouvez essayer avec la méthode 'dismiss()'. – PhatHV

+0

Oui, je le sais. Mais regardez la question, s'il vous plaît. J'ai ajouté ce que j'ai exactement besoin de faire pour que ça marche. – Sabre

Questions connexes