SORU
11 Kasım 2010, PERŞEMBE


Tam olarak nasıl android:özelliği XML özniteliği setOnClickListener farkı nedir?

Bu iki yönden düğmesi onClick işleyicisi atayabilirsiniz okudum.

Kullanarak android:onClick XML özniteliği burada sadece kullanmak adına bir kamu yöntemi ile imzavoid name(View v) kullanarak setOnClickListener yöntem nerede geçirmek bir nesneye uygulamak OnClickListener arayüzü. İkinci sıklıkta OnClickListener uygulayan şahsen (kişisel zevk) gibi ya da bir iç sınıf bilmediğim anonim bir sınıf gerektirir.

XML özniteliği kullanarak, bu yüzden ... bir sınıf yerine bir yöntem tanımlamak gerekir aynı merak XML düzeninde kod üzerinden değil, yapılabilir.

CEVAP
11 Kasım 2010, PERŞEMBE


Bu kod ile mümkün değil. Android sadece android:onClick="someMethod" öznitelik tanımlamak için OnClickListener uygular.

Bu iki kod parçacıkları tamamen aynı fakat sadece iki farklı şekilde uygulanmaktadır.

Kod Uygulaması

Button btn = (Button) findViewById(R.id.mybutton);

btn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        myFancyMethod(v);
    }
});

// some more code

public void myFancyMethod(View v) {
    // does something very interesting
}

Yukarıda OnClickListener bir kod bir uygulama. Ve şimdi XML uygulanması.

XML Uygulama

<?xml version="1.0" encoding="utf-8"?>
<!-- layout elements -->
<Button android:id="@ id/mybutton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Click me!"
    android:onClick="myFancyMethod" />
<!-- even more layout elements -->

Şimdi arka plan Android yok Java kodu tıklatın olay yöntemi " demekten daha başka bir şey.

XML yukarıda, Android onClick yöntemi myFancyMethod() sadece mevcut Faaliyet görüneceğini unutmayın. Bu önemli unutmayın kullanıyorsanız parçaları, beri bile eklediğiniz XML yukarıda kullanarak bir parçası, Android aramaz için onClick yöntemi .java dosya parçası kullanılan Ekle XML.

Önemli bir şey fark ettim. Anonim tercih etmiyor bahsetmiştinyöntemleri. Anonim sevmiyorsun demek istedinsınıflar.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Ash100HD

    Ash100HD

    29 EKİM 2011
  • Facebook Developers

    Facebook Dev

    24 ŞUBAT 2009
  • Tire Rack

    Tire Rack

    31 Mayıs 2007