Как закрыть всплывающее окно? - PullRequest
3 голосов
/ 12 марта 2012

У меня есть активность с пользовательским всплывающим окном (стиль быстрого действия). Есть несколько кнопок, ведущих к другим действиям. Я хочу закрыть всплывающее окно после нажатия кнопки (о или по электронной почте) в этом всплывающем окне (теперь, когда я возвращаюсь, всплывающее окно появляется снова).

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

1 Ответ

2 голосов
/ 12 марта 2012

попробуйте finish() на методе onClick кнопки.

Последнее обновление:

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; на вашу деятельность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...