2012-03-12 5 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를 해결할 수없는 :

이 같은 뭔가가 필요합니다. 심지어 finalQuickAction 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

+0

당신은'dismiss()'메소드로 시도 할 수 있습니다. – PhatHV

+0

예, 알고 있습니다. 그러나 질문을보십시오. 나는 그것이 올바르게 작동하도록하기 위해 필요한 것을 추가했다. – Sabre