Vehbi’nın Rozetleri
Soru & Cevap
11 Cevap
Anlamadım gitti sorun çözülmüş diyorlar ancak bende harfiyen aynı şeyleri yapmama rağmen aynı sorunla karşılaşıyorum. Bu kadar basit hatalarla programlar patlıyorsa çok garip bir durum bu bence.
Android konusunda çok yeniyim arkadaşlar yardımcı olabilirmisiniz.
Soru çözüme kavuşalı bayağı olmuş ama belki birinin işine yarar; bende bu akşam aynı sorunla uğraştım çözümü şu şekilde gözden kaçan bir ayrıntıymış :
butonu "protected void onCreate(Bundle savedInstanceState) " metodu içerisinde tanımladığında noktayı koyduğunda tanımladığın nesnenin fonksiyonlarını çekiyor
Selam Onur,
Aslında eclipse bu durumu aynı sınıf isminden birden fazla var ise yapıyor. Farklı paketlerde aynı sınıf isimlerinin olması muhtemel. Mesela soruya sebep olan OnClickListener hem View.OnClickListener hem de DialogInterface.OnClickListener olmak üzere iki adet mevcut. Bahsettiğim organise Imports kısa yolunu kullandığınızda da karşınıza bir pencerede aynı isimli (ama farklı paketlerde )class ların çıkacağını ve birini seçmeniz gerektiğini göreceksiniz.
Eclipse arada sırada bazı inner class'ları görmüyor (sanırım interface classlarında), üstüne gelsen de import çıkmıyor. Bir kaç kere benim de başıma geldi, kendin import xxx.xx.... diye eklediğin zaman uyarı gidiyor.
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View paramV) {
//Burada islemlerini yapacaksin
}
});
Yaptıktan sonra ctrl+shift+O ya basıp Click Listeneri seçeceksin. Ondan sonra hallolacaktır sorun.
Selam,
Bu sefer sanırım problem,Hakan'ın dediği gibi import problemi gibi duruyor.
Çözüm olarak OnClickListener yerine View.OnClickListener yazabilirsin. Yada importlarına
import android.view.View.OnClickListener;
ifadesini ekleyebilirsin.
Yine bir eclipse kısa yolu var, "organize imports" isimli. Bu kısa yol ile eksik importların eclipse tarafından otomatik olarak bulunuyor ve ekleniyor. "Ctrl+shift+o" tuşları bu özelliği çalıştırıyor. Burada da deneyebilirsin.
Selam Vehbi,
OnClickListener bir interface (arayüz) sınıfı olduğu için yeni obje yaratman durumunda, arayüz sınıfının yazmana zorladığı metodları doldurmak zorundasın. Bunu daha iyi anlaman için java sınıf tiplerini incelemeni tavsiye ederim.
Bir de resimden gördüğüm kadarıyla eclipse kullanıyorsun. Kod yazarken Eclipse in kod tamamlama özelliğini (ctrl+ boşluk tuşlarına aynı anda basarak) kullanmanı tavsiye ederim.
Kodunu aşağıdaki gibi değiştirirsen çalıştığını göreceksin.
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View paramV) {
//Burada islemlerini yapacaksin
}
});