2012-03-12 157 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