2011-01-24 27 views
15

Görüntüyü tıklanabilir hale getirebilir miyim? Bazı yollar denedim, ama başarılı olamadım. İşte denedim son kod (tıklanabilir ama alır hatası): Tıklanabilir resim - android

<ImageView 
    android:src="@drawable/tbnewbutton" 
    android:text="@string/hello" 
    android:layout_width="wrap_content" 
    android:layout_alignParentRight="true" 
    android:id="@+id/newbutton" 
    android:clickable="true" 
    android:onClick="clickImage" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true" /> 

bu kod çalıştırma ve ben bu hatayı alıyorum tıklayarak görüntüyü:

ImageView btnNew = (ImageView) findViewById(R.id.newbutton); 
    btnNew.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 

      // do stuff 
      } 

     });  

ve burada xml den parçası:

: BURADA

01-24 19:14:09.534: ERROR/AndroidRuntime(1461): java.lang.IllegalStateException: Could not find a method clickImage(View) in the activity

ÇÖZÜM'S

XML:

<ImageButton 
    android:src="@drawable/tbnewbutton" 
    android:text="@string/hello" 
    android:layout_width="wrap_content" 
    android:layout_alignParentRight="true" 
    android:id="@+id/newbutton" 
    android:clickable="true" 
    android:onClick="clickNew" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true" 
    android:background="@null" /> 

kodu:

public void clickNew(View v) 
{ 
    Toast.makeText(this, "Show some text on the screen.", Toast.LENGTH_LONG).show(); 
} 

cevap

24

söyledi: Bu bir ImageButton yapmak ve onClick

<ImageButton 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:layout_gravity="left" 
    android:onClick="scrollToTop" 
    android:src="@drawable/to_top_button" 
/> 

görüntü burada dosya res/çekilebilir/to_top_button.png kodlanmıştır öznitelik tanımlar. Kullanıcı bu düğmeyi tıklarsa, scrollToTop() yöntemi çağrılır. Bu yöntemin, Layout'u içerik düzeni olarak ImageButton ile ayarlayan sınıfta bildirilmesi gerekir. Bu şekilde ayrıca yazarak bir çok kazandırır ve OnClick işleyicisi tanımlanması

public void scrollToTop(View v) { 
    ... 
} 

bellek ayak izi için faydalıdır anonim iç sınıflara ihtiyacını önler.

+8

Tamam, bu bir işe yarıyor, ama şimdi benim imgemde bir düğme var .. Bu benim düzenimi frenliyor. Bunu düzeltmek için android: background = "@ null" satırını xml'ye ekledim ve tüm işlemler mükemmeldi! – user484146

+0

Bu cevabı yararlı olarak işaretlemek ister misiniz? –

+0

Kullanılacak doğru arka plan "android: background ="? Android: selectableItemBackground "'. – thirtythreeforty

3

bir ImageButton istediğini yapar mı?

Aldığınız hata iletisi, etkinliğinizde, onClick işleyicinizle eşleşen bir yöntemin olmadığını ima eder.

clickImage(View view) gibi bir işlem yapmalısınız.

+0

clickImage (Görünümünü görüntüle) ile denedim ama çalışmaz, OnClickListner'ın nedeni .. Eğer bir görüntü düğmesi saydamsa ve yalnızca görüntüyü gösterecekse (düğme yok), onu kullanabilirim. – user484146

+0

Oh, onCreate uygulamasında açık bir tıklama dinleyicisini açıkça ayarlıyorsanız, düzeninizde bir onClick özniteliğine sahip olmamalısınız. –

+0

Android'den kaldırmayı denedim: koddaki onClick = "clickImage" ve sonuçta tıklama yapıldığında hiçbir şey olmuyor. – user484146

0

Sen resim XML tıklandığında "clickImage" aramak için onclick yöntemini kurdum, ancak kodunuzda bir clickImage yöntemi oluşturmadınız. Onclick dinleyiciyi ayarlamanız gerekmemelidir. Yöntemi yalnızca XML'inizden uygulayın ve ayarlanmalısınız. Diğer itibariyle

İlgili konular