2010-01-09 12 views
29

Android'de geliştirmeyi öğrendim ve genel bir soruyla karşılaştım: Bir liste ve başka görünümler kullanan bir düzenim varsa, etkinlik sınıfım için Etkinlik veya Liste Etkinliği kullanmalı mıyım?Android - Activity vs. ListEtkinlik - Etkinlik sınıfım hangisini uzatmalı?

ListActivity'nin muhtemelen listeye özgü olayları geçersiz kılacak şeyleri daha kolay hale getireceğini biliyorum, ancak Activity üzerinde bir ListActivity kullanmanın başka bir avantajı var mı? Gelecekte düzeni GridView olarak değiştirmek istesem ne olur? Sınıfın kodunu değiştirmek için daha fazla acı çeker mi?

Ben bu konuda "en iyi uygulamalar" ve ne faydalar gerektirecektir hakkında sadece merak, bu yüzden herhangi bir cevap yardımcı olacaktır :)

Bara

cevap

43

ListActivity kullanıyorum, işleri kolaylaştırmak ve kodunuzu daha okunabilir tutmak için size çok sayıda kısayol yöntemi verdiğinden. Örneğin, ayrı bir dinleyici oluşturmanızı sağlayan bir öğeyi tıklattığınızda çağrılan onListItemClick() method örneğini alırsınız.

Bir ListActivity düzenini değiştirmek isterseniz, setContentView() method from Activity ile hala yapabilirsiniz. @android:id/list adı verilen ListViewView ürününüzde ListActivity hala çalışıyor.

Hala emin değilseniz, her zaman source code for ListActivity'a bakabilir ve hayatınızı biraz daha kolaylaştırmaktan başka hiçbir şey yapmadığını görebilirsiniz.

+0

Sadece aynı yaklaşımın yanı sıra hem Activity hem de ListActivity kullanan bazı kodları yeniden düzenlemeye çalışırken, bu yaklaşıma daha yeni başladım. Yerleşimimin ortak bölümünde boş bir ListView yerleştirildi ve ardından bu ortak parçayı ve etiketlerini kullanarak paylaştı. –

+0

ListActivity, bazı kullanım durumlarında kendilerini gösteren bazı hatalar içeriyor. Dolayısıyla ListActivity, çok çok temel kullanım durumunda koşullu olarak kullanılabilir. Ve bu durumda Etkinlik ve ListView kullanmak için yeterince basit. – Anderson

11

Ben Aktivite ile gitmek istiyorum. Önemsiz bir şey yapmak istemediğiniz sürece ve Listeyle birlikte olacağını bilmediğiniz sürece, gerçekten ListActivity'i kullanma nedenini görmeyin.

+0

Bu, Aktivite Üzerinden ListActivity özelliğini kullanmanın bir avantajı olmadığı anlamına gelir ve sadece bir çeşit "kısayol" olarak var mıdır? Google’ın beklediği bir çeşit standart var mı? – Bara

+2

Bana göre avantajlar Dave'in yukarıda belirttiği gibi, biraz zaman kazandırıyor ve kodu biraz daha temiz hale getiriyor. Dokümanlardaki veya Dave'in önerdiği kaynak koddaki ListActivitesine bakın ve bu kolaylığa ihtiyacınız olup olmadığına bakın. Şahsen, çoğu durumda faaliyeti kullanıyorum. –

+2

Katılıyorum. Liste Etkinliği yeterli olmamıştır. Hala önemsiz bir şey için iyi olabilir. –

0

ListActivity kodları yeniden kullanılamaz olduğundan ve bunları tekrar tekrar yazmanız gerektiğinden, Etkinliği, ListActivity yerine kullanmalısınız.

+1

Bu, soruya bir cevap vermemektedir. Yeterli [itibara] sahip olduğunuz zaman (https://stackoverflow.com/help/whats-reputation) herhangi bir gönderiye yorum yapabilirsiniz (https://stackoverflow.com/help/privileges/comment); bunun yerine, [askerden açıklama istemeyen cevaplar verin] (https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- i-do-yerine). - [Yorum Yaz] (/ review/düşük kaliteli yazılar/18620473) – thewaywewere