2010-06-01 10 views
19

que tienen un RelativeLayout con unos pocos TextView como hijosaceptar eventos de clic en 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" 
     /> 

¿Cómo hago para usar el RelativeLayout como botón para reaccionar ante un evento clic si alguna parte de el área está presionada?

Respuesta

17

Sólo tiene que añadir un OnClickListener a su RelativeLayout

+0

sí lo hice y no parece que el oyente puede disparar ... me siento como un nudo tales. Olvidé cambiar el onClick para reaccionar a la identificación ... Siguiente pregunta: ¿por qué no se colorea el fondo de la vista? – skooter

+0

hmm ¿por qué debería colorear? ¿tienes código para eso? – RoflcoptrException

+1

Estoy bastante seguro de que @skooter quería decir por qué no produce el comportamiento predeterminado del botón donde el fondo cambia de color cuando se presiona. ¿Hay alguna manera de agregar este comportamiento sin codificar manualmente el cambio de fondo? – ForceMagic

17

Tengo un RelativeLayout llamado "RelativeMain1". Así es como lo hago comenzar Actividad

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

Después de agregar el onClickListener a su diseño, debería funcionar.

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

      } 
     }); 
4

agregar un "OnClickListener" a su RelativeLayout.

Nota: No olvides agregar android:clickable="true" a tu RelativeLayout.

3
  1. Dé su RelativeLayout una identificación, al igual que ha escrito shift_parent_name
  2. Fije su RelativeLayout XML para android:clickable="true"

    Su xml final será el siguiente aspecto:

    <RelativeLayout 
    android:id="@+id/shift_parent_name" 
    android:layout_width="fill_parent" 
    android:layout_weight="0.25" 
    android:clickable="true"> 
    
  3. continuación, agregue el código en su método 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)); 
        } 
    }); 
    

Asegúrese de cambiar sus nombres de actividades, Main.this y About.class.

La actividad principal llamado Main.java y el segundo es About.java

Cuestiones relacionadas