2012-04-12 11 views

risposta

20

setonclicklistner per il layout principale del file di layout ....

Come .... main.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:id="@+id/mainlayout"> 
<!- Your other view-> 
</Relativelayout> 

e impostare cliccare listener per mainlayout ...

RelativeLayout rlayout = (RelativeLayout) findViewById(R.id.mainlayout); 
rlayout.setOnClickListener(new OnClickListener() { 

    @Override 
    public void onClick(View v) { 

    } 

}); 
+1

Qual è il nome completo della classe di OnClickListener? android.view.View.OnClickListener? – tgkprog

+1

android.view.View.OnTouchListener utile per l'ascolto generico di x, y touch – tgkprog

1

Assegna al tuo layout principale un ID, quindi

LinearLayout root = (LinearLayout) findViewById(R.id.main_layout); 
root.setOnClickListener(new OnClickListener() { 
    public void onClick() 
    { 

    } 
}); 
0

Forse si può aggiungere un listener all'istanza Layout, ottenendo il layout con

RelativeLayout l = (RelativeLayout)findViewById(R.id.mylayout); 
l.setOnClickListener(click); 
0

È inoltre possibile impostare direttamente una richiamata dall'attributo onClick xml del layout root:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:onClick"myMethod"> 
<!- Your other view-> 
</Relativelayout> 

E in la vostra attività:

public void myMethod(View pView) { 
    //XXX do something 
} 

codice meno gonfio questo modo :)

1

Credo che il modo più semplice è quello di ignorare onUserInteraction nella vostra Activity

Basta essere consapevoli che non si attiva quando gli utenti si concentrano on/off EditText s e Spinners (probabilmente altri Widget troppo). Ma si accende ogni volta che l'utente tocca lo schermo o preme un pulsante.

Ma questo rende superfluo costruire gli ascoltatori nei propri layout o scrivere metodi aggiuntivi per gestire tali ascoltatori, quindi credo che sia il modo più semplice per ottenere quello che vuoi.

Problemi correlati