I want to add text under a image button, which are also clickable, and will be redirected to the same activity as the image button. basically it's like the app list in any android phone, e.g.
Asked
Active
Viewed 2.4k times
8

Xiao Han
- 1,004
- 7
- 16
- 33
4 Answers
13
If you have your ImageButton
declared in XML, then just put it into a LinearLayout
which also contains a TextView
and set the onClickListener
on the LinearLayout
. The structure would be like
<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>
And then in your java:
LinearLayout layout = (LinearLayout)findViewById(R.id.linLayout);
layout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
});
If you're adding each ImageButton
dynamically via java code, then it will still maintain the same structure. Let me know if I need to add anything.

Shubham Suryavanshi
- 533
- 9
- 14

Reed
- 14,703
- 8
- 66
- 110
-
I tried that, it makes textview clickable, but suddenly the imagebutton does not work after click. I have to keep the onclicklistener code for imagebutton in the .java file as well to make both imagebutton and text clickable – Xiao Han Jan 15 '12 at 09:05
-
2You're doing it wrong then. If the LinearLayout containing a particular item is set to listen to the click then the image, nor the text are being listened to. ONLY the layout that contains all these views. – JoxTraex Jan 15 '12 at 14:08
-
1I know this is an old post, however I had the same issue as Xiao Han above (the TextView was clickable but the ImageButton was not). I changed the ImageButton to an ImageView and it worked as expected. – mjhouseman Feb 29 '16 at 03:03
11
setAlpha and do the below
<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" />

Shubham Suryavanshi
- 533
- 9
- 14

Srinath Ganesh
- 2,496
- 2
- 30
- 60
1
if you want to create this king of list use gridview and in getview method inflate customlayout with imageview and textview

Harsh Dev Chandel
- 763
- 5
- 12
0
Also you can set onClickListener to 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>
java code:
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();
}
});

Roman Black
- 3,501
- 1
- 22
- 31