2 Stimmen

Android: Klick-Ereignis bei leerem Aktivitätsbereich aktivieren

Ich habe mein Aktivitätsthema auf durchsichtig gestellt, damit man das darunter liegende Aktivitätsfenster sehen kann.

Ich möchte wissen, ob es möglich ist, Klick-Ereignis zu aktivieren, wenn Benutzer tippen auf leeren Bereich auf diese durchscheinende Aktivität?

Danke,

dara kok

6voto

Swathi EP Punkte 3824

Es ist möglich, ein Klick-Ereignis zu Ihrer Aktivität hinzuzufügen. Sie müssen wie unten beschrieben vorgehen:

Sie hätten setContentView(R.layout.main); in onCreate() Ihrer Aktivität ausführen können.

Geben Sie in main.xml eine ID für das Stammlayout an. Zum Beispiel..,

Nehmen wir an, Sie haben Root als LinearLayout mit id wie unten eingestellt,

Dann müssen Sie in onCreate() Ihrer Aktivität Folgendes tun:

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

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

        }
    });

3voto

Torp Punkte 7894

Dies zu überschreiben würde funktionieren: http://developer.Android.com/reference/Android/app/Activity.html#onTouchEvent(Android.view.MotionEvent

Ich denke jedoch, dass Ihre durchsichtige Aktivität die Hähne bekommt, nicht die sichtbare darunter.

1voto

Sie können der übergeordneten Ansicht Ihres Layouts einen OnClickListener hinzufügen. Zum Beispiel, fügen Sie android:id="@+id/some_id" zu Ihrem übergeordneten LinearLayout in main.xml.

Fügen Sie dann diesen Code nach setContentView in der onCreate-Methode hinzu:

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X