Android: включить событие клика в пустой области активности

1

Я задал тему своей деятельности полупрозрачной, чтобы перейти в нижнее окно активности.

Я хочу знать, можно ли включить событие click, когда пользователь нажимает на пустую область на этой полупрозрачной активности?

Спасибо,

dara kok

Теги:
background
click
events

3 ответа

6

В мероприятие можно добавить событие click. Вам нужно сделать следующее:

Вы могли бы сделать setContentView (R.layout.main); в onCreate() вашей деятельности.

В main.xml укажите некоторый идентификатор корневого макета. Например,

Давайте рассмотрим, что у вас есть root как LinearLayout с идентификатором, указанным ниже,

Затем в onCreate() вашей активности вам нужно будет сделать следующее:

LinearLayout layout = (LinearLayout) findViewById(R.id.linearLayout);
layout.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

        }
    });
2

Переопределение этого будет работать: http://developer.android.com/reference/android/app/Activity.html#onTouchEvent(android.view.MotionEvent)

Однако я думаю, что это ваша полупрозрачная активность, которая получит краны, а не ту, что видна под ней.

  • 0
    Да, это работает. Спасибо вам всем.
1

Вы можете добавить OnClickListener в родительский вид вашего макета. Например, добавьте android:id="@+id/some_id" к вашему родительскому LinearLayout в main.xml.

Затем добавьте этот код после setContentView в методе onCreate:

LinearLayout linearLayout = (LinearLayout) findViewById(R.id.some_id);
FrameLayout frameLayout = (FrameLayout) linearLayout.getParent(); // Get parent FrameLayout
frameLayout.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        onBackPressed(); // Close activity, for example
    }
});

linearLayout.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        // empty block for prevent frameLayout click event, if you need
    }
});

Ещё вопросы

Сообщество Overcoder
Наверх
Меню