2012-01-15 64 views

Respuesta

11

Si usted tiene su ImageButton declarado en XML, a continuación, sólo hay que poner en un LinearLayout que también contiene una TextView y establecer el onClickListener en el LinearLayout. La estructura sería como

<LinearLayout 
     ... > <!-- This is the LinearLayout for the xml document --> 

    <!-- Some other layout code here if you please --> 
    <LinearLayout 
     android:id="@+id/linLayout" 
      ... > 
     <ImageButton 
       ... /> 
     <TextView 
       ... /> 
    </LinearLayout> 
</LinearLayout> 

Y luego, en su Java:

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

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

      } 
     }); 

Si va a añadir cada ImageButton de forma dinámica a través de código java, entonces se seguirá manteniendo la misma estructura. Avíseme si necesito agregar algo.

+0

lo he intentado, hace que se pueda hacer clic TextView, pero de repente el ImageButton no funciona después de clic. Tengo que mantener el código onclicklistener para imagebutton en el archivo .java para poder hacer clic tanto en el botón de imagen como en el texto. –

+2

Lo estás haciendo mal entonces. Si el LinearLayout que contiene un elemento en particular está configurado para escuchar el clic, la imagen y el texto no se escuchan. SOLO el diseño que contiene todas estas vistas. – JoxTraex

+1

Sé que esta es una publicación anterior, sin embargo tuve el mismo problema que Xiao Han anteriormente (se hizo clic en el TextView pero no en el ImageButton). Cambié el ImageButton a un ImageView y funcionó como se esperaba. – mjhouseman

0

si desea crear este rey de la lista utilización gridview y en el método getView inflar customlayout con imageview y TextView

0

También puede establecer OnClickListener a TextView

<!-- Some other layout code here if you please --> 
<LinearLayout 
    android:id="@+id/linLayout" 
     ... > 
    <ImageButton android:id="@+id/btn1" 
      ... /> 
    <TextView android:id="@+id/tv1" 
      ... /> 
</LinearLayout> 

código de java:

ImageButton btn1 = (ImageButton) findViewById(R.id.btn1); 
btn1.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       myClick(); 

      } 
     }); 


TextView tv1 = (TextView) findViewById(R.id.tv1); 
tv1.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       myClick(); 

      } 
     }); 
7

setAlpha y hacer el siguiente

<Button 
     android:id="@+id/comparePack" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginBottom="5dp" 
     android:onClick="compareButtonClick" 
     android:text="@string/compare" 
     android:drawableTop="@drawable/compare1edit" 
     android:gravity="left|center_vertical"/> 
Cuestiones relacionadas