2012-03-12 185 views
3

我有一个自定义弹出窗口(quickaction样式)的活动。有一些按钮导致其他活动。我想在弹出窗口中按下按钮(关于或电子邮件按钮)后关闭弹出窗口(现在当我回弹时再次出现)。如何关闭弹出窗口?

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 
     } 
    }); 

} 

} 

请帮忙。


补充:

我需要的是这样的:

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

qa不能得到解决。即使我将final添加到QuickAction qa = new QuickAction(v);

回答

2

尝试按钮的onClick方法上的finish()

更新:

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 
     } 
    }); 

你也可以把private QuickAction qa;在您的活动。

+0

这不是解决方案,因为在我回到使用弹出窗口的活动之后,它(带弹出窗口的活动)关闭。 – Sabre 2012-03-12 06:26:36

+0

你可以尝试'dismiss()'方法。 – PhatHV 2012-03-12 06:28:17

+0

是的,我知道。但请看这个问题。我添加了我确实需要做的工作。 – Sabre 2012-03-12 06:37:19