2011-01-23 33 views
5

görüntülemek için düğmeye nasıl eklenir, ben SurfaceView (MonoDroid yüzden hafif sözdiziminde varyasyonları kullanarak) uzanan özel bir görünüm oluşturun: Benim Etkinlik sınıftaAndroid: programlı benim Android aktivitede

class FriendsView : SurfaceView 
{ 
    ... 

    public FriendsView(Context context) : base(context) 
    { 

     ... create my custom view ... 

    } 


} 

, belirlediğim görünümüne içerik görünüm:

protected override void OnCreate(Bundle bundle) 
{ 

    base.OnCreate(bundle); 

    ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FillParent, ViewGroup.LayoutParams.FillParent); 

    FriendsView friendsView = new FriendsView(this); 

    SetContentView(friendsView, layoutParams); 

} 

Ben görünümüne bir düğme eklemek istiyorum, ama bunun nasıl dışarı çalışamaz. Okuduğum her şey main.xml'nin bakış açısından başlıyor, ancak bunu benim görüşümde görülebilen bir düğmeyi bildirmek için nasıl kullanacağımı göremiyorum. Aynı şekilde, bir Button nesnesini programlı olarak eklememe izin veren Etkinlik veya Görünüm sınıflarında bir yöntem bulamıyorum.

ben kavramsal bir şey eksik eminim, ama bana doğru yönde gidiyor almak için herhangi bir yardım bekleriz.

+0

Maalesef, nereye böyle prototip ile yapıcı 'ViewGroup.LayoutParams' götürdü? – Dims

+0

Cevabınızı sağda bulabilirsiniz [here] (http://stackoverflow.com/a/7679516/828728). – yugidroid

cevap

10

Sana Arkadaşlarınızı gayet bkz doğru anlamak, ancak bunun için bir düğme eklemek istiyor musunuz? Ben Arkadaşlarınızı olduğunu Görünüm ne tür bilmiyorum, ama varsayarak size (bir LinearLayout falan gibi) için çocuk herkesin ekleyebilir şey, siz (sadece kafamın üstünden) bunu yapmak mümkün olmalıdır olduğunu

//assuming you have a friendsView object that is some sort of Layout. 
Button yourButton = new ImageButton(this); 
//do stuff like add text and listeners. 

friendsView.addView(yourButton); 

sen, sadece findViewById() kullanarak can

+0

Merhaba, Nanne - evet, doğru. Görünümüm iyi çalışıyor, ancak bir düğme eklemeyi içeren bazı işlevler eklemek istiyorum. – user304582

+0

Bu yüzden addView işlevini öneririm :) – Nanne

+1

Önerinizi denedim, ancak özel Görünümümde addView yöntemim yok (SurfaceView'ı genişletiyor). SurfaceViews düğmeleri desteklemiyor mu? – user304582

4

A SurfaceView (böyle onları bulmak istiyorsanız reklam öğelerine kimlikleri ekleyin) bulabilirsiniz için bir çocuk eklemek istediğiniz Arkadaşlarınızı diğer bazı unsur varsa değil (bir ViewGroup can (LinearLayout, RelativeLayout, ...) ben size contentView (bir LinearLayout kullanmak istiyor sanırım), daha doğrusu bir RelativeLayout dayalı yalnızca Görüntüleme çocuk var inci eğer e Düğme, SurfaceView'un "içinde" olmalıdır. LinearLayout için, RelativeLayout için düzen yönelimine (setOrientation()) dikkat etmelisiniz, RelativeLayout içindeki childs'ın göreceli koordinatlarını/konumlarını tanımlayacak olan LayoutParams hakkında çok özel bir dikkat göstermelisiniz. XML tüm şişirmek eğer iyi

olurdu. Ayrıca, "kendi" Görünümlerinizi XML dosyasındaki tam sınıf adını kullanarak da şişirebilirsiniz. Temel olarak bir ContentView'ı kendiniz bir araya getirmeye gerek yoktur.

İlgili konular