2012-01-15 47 views

Trả lời

11

Nếu bạn có ImageButton bạn khai báo trong XML, sau đó chỉ cần đặt nó vào một LinearLayout mà cũng chứa một TextView và thiết lập onClickListener trên LinearLayout. Cấu trúc sẽ như thế nào

<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> 

Và sau đó trong java của bạn:

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

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

      } 
     }); 

Nếu bạn đang thêm mỗi ImageButton động thông qua mã java, sau đó nó vẫn sẽ duy trì cấu trúc tương tự. Hãy cho tôi biết nếu tôi cần thêm bất kỳ thứ gì.

+0

Tôi cố gắng đó, nó làm cho TextView nhấp, nhưng đột nhiên ImageButton không hoạt động sau khi nhấp chuột. Tôi phải giữ mã onclicklistener cho imagebutton trong tập tin .java cũng để làm cho cả hai imagebutton và văn bản có thể click –

+2

Bạn đang làm sai rồi. Nếu LinearLayout chứa một mục cụ thể được đặt để nghe nhấp chuột thì hình ảnh, cũng như văn bản đang được nghe. CHỈ bố cục chứa tất cả các chế độ xem này. – JoxTraex

+1

Tôi biết đây là một bài đăng cũ, tuy nhiên tôi đã có cùng một vấn đề như Xiao Han ở trên (TextView có thể nhấp được nhưng ImageButton không). Tôi đã thay đổi ImageButton thành ImageView và nó hoạt động như mong đợi. – mjhouseman

0

nếu bạn muốn tạo vua này trong danh sách sử dụng GridView và trong phương pháp getview thổi phồng customlayout với ImageView và TextView

0

Ngoài ra bạn có thể đặt OnClickListener để 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> 

mã 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 và làm dưới đây

<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"/> 
Các vấn đề liên quan