2013-05-07 17 views
5

Görünüşe göre bir şablon görünümü var;Şişirilmiş Görünüm yakalamıyor onClick olay

template.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:id="@+id/contentLayout" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="@color/view_background" 
android:gravity="center_vertical" 
tools:context=".MainActivity" > 

<Button 
    android:id="@+id/btnMultiple" 
    android:layout_width="0dp" 
    android:layout_height="150dp" 
    android:layout_marginLeft="5dp" 
    android:layout_marginRight="5dp" 
    android:layout_weight="1" 
    android:background="@drawable/button_backgroundblue" 
    android:onClick="btnMultiple_clicked" 
    android:tag="4" 
    android:text="@string/mc_abcd" 
    android:textColor="@drawable/button_textcolor" 
    android:textSize="@dimen/h2" /> 

programlı bu görüşü kuruyorum ve sonra ben gibi ViewFlipper içine bu Görünüm ekliyorum;

activity_main.java

public void btnCreateView_clicked(View view) { 
    ViewFlipper viewFlipper = (ViewFlipper)findViewById(R.id.flipper); 

    View myView = LayoutInflater.from(getApplicationContext()).inflate(R.layout.template, viewFlipper, false); 
    viewFlipper.addView(myView); 
    viewFlipper.showNext(); // Showing lastly created myView successfully. } 

Ayrıca benim aktivite gibi kamu işlevi vardır;

activity_main.java

public void btnMultiple_clicked(View view) { 
     //Save the world ! 
} 

i başarılı bir şekilde ViewFlipper eklemeden sonra şablon (myview) oluşturmak ve ilk görüntüleme gelen btnCreateView düğmesine

. BtnMultiple'ı tıklattığımda hata alıyorum ve uygulama çöküyor; "BtnMultiple" kimliğine sahip android.widget.Button görünüm sınıfındaki onClick işleyicisi için android.app.Application etkinlik sınıfında btnMultiple_clicked (Görünüm) yöntemini bulamadık. "Eminim mevcut yöntem btnMultiple_clicked (Görünüm).

PS! Programlı olarak btnMultiple dinleyicisini eklediğimde işe yarayacak ama neden "android: onClick =" btnMultiple_clicked "" neden çalışmıyor?

cevap

5

Android, Activity adresindeki onClick özniteliğinde tanımlanan yöntemi arar. Kodunuzdaki sorun, Application'un ContextContext ve ContextContext ilklendirmesi için kullanılan yöntemdir ve bu nedenle yöntem bulunamadı (ContextView geçirilir). Kullanın:

View myView = LayoutInflater.from(this).inflate(R.layout.template, viewFlipper, false); 

veya bu düğmeler kullanılacaktır Activity işaret başka bir referans. Bu, çoğu durumda neden Activity'un Context kullanmanız gerektiğine iyi bir örnektir.

+0

Anladım, yardımlarınız için teşekkürler. Bir çekicilik gibi çalışır. –

İlgili konular