2010-06-01 12 views
19

Ho un RelativeLayout con qualche TextView come i bambiniaccettare eventi click in RelativeLayout

<RelativeLayout 
    android:id="@+id/shift_parent_name" 
    android:layout_width="fill_parent" 
    android:layout_weight="0.25" 
    > 
    <TextView 
     android:id="@+id/shift_parent_nametitle" 
     android:text="@string/shift_parent_nametitle" 
     style="@style/header_text" 
     /> 
    <TextView 
     android:id="@+id/shift_parent_namefield" 
     android:layout_alignParentRight="true" 
     android:layout_below="@id/shift_parent_nametitle" 
     style="@style/wrap" 
     /> 

Come posso fare per utilizzare il RelativeLayout come tasto a reagire ad un evento click se una qualsiasi parte del l'area è premuta?

risposta

17

Basta aggiungere un OnClickListener al RelativeLayout

+0

sì l'ho fatto e l'ascoltatore non sembra essere a sparare ... Mi sento come un tale nocciolo. Ho dimenticato di cambiare il onClick per reagire all'ID ... Domanda successiva: perché lo sfondo della vista non si colora? – skooter

+0

hmm perché dovrebbe colorare? hai il codice per questo? – RoflcoptrException

+1

Sono abbastanza sicuro che @skooter ha significato il motivo per cui non produce il comportamento predefinito del pulsante in cui lo sfondo cambia colore quando viene premuto. C'è un modo per aggiungere questo comportamento senza codificare manualmente la modifica in background? – ForceMagic

17

Ho un RelativeLayout chiamato "RelativeMain1". Questo è come i renderlo inizio attività

RelativeLayout relativeclic1 =(RelativeLayout)findViewById(R.id.RelativeMain1); 
     relativeclic1.setOnClickListener(new View.OnClickListener(){ 
      @Override 
      public void onClick(View v){ 
       startActivityForResult(new Intent(A_My_Galaxy.this,C_Student_Book_Planet.class), 0); 
      } 
     }); 

Dopo aver aggiunto l'onClickListener al layout, dovrebbe funzionare.

0
RelativeLayout rl=(RelativeLayout)findViewById(R.id.RelativeMain1); 
     relativeclic1.setOnClickListener(new View.OnClickListener(){ 
      @Override 
      public void onClick(View v){ 

      } 
     }); 
4

Aggiungi un "OnClickListener" al tuo RelativeLayout.

Nota: Non dimenticare di aggiungere android:clickable="true" a RelativeLayout.

3
  1. Lascia la tua RelativeLayout un ID, come digitato shift_parent_name
  2. Impostare il RelativeLayout XML per android:clickable="true"

    tuo XML finale sarà simile a questa:

    <RelativeLayout 
    android:id="@+id/shift_parent_name" 
    android:layout_width="fill_parent" 
    android:layout_weight="0.25" 
    android:clickable="true"> 
    
  3. quindi aggiungere il codice nel tuo metodo onCreate:

    RelativeLayout relative1 = (RelativeLayout) findViewById(R.id.shift_parent_name); 
        relative1.setOnClickListener(new View.OnClickListener(){ 
        @Override 
        public void onClick(View v){ 
         startActivity(new Intent(Main.this, About.class)); 
        } 
    }); 
    

Assicurarsi di modificare i nomi delle attività, Main.this e About.class.

L'attività principale chiamato Main.java e il secondo è About.java

Problemi correlati