Soru & Cevap

setOnclickListener(new onClickListener) i çağıramıyorum

26.09.2013 - 01:14

https://gelecegiyazanlar.turkcell.com.tr/konu/android/egitim/android-201/ilk-android-uygulamasi  Bu dersi izliyordum hocam tüm adımlarıda yaptım ama setOnclickListener(new OnClickListener) yazarken new OnClickListener derken fonksiyon çıkmıyor Elimle Yazıyorum Gene Hata Veriyor Birde Verdiğim Fotoda kırmızı bir hata var 

395 Görüntülenme

11 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

Profile picture for user pehpeh
pehpeh
18.06.2014 - 04:07

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.

 

picture-9392-1396603210.jpg
admcetinkaya
09.04.2014 - 01:25

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

picture-539-1376512244.jpg
enessen
27.09.2013 - 11:06

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.

picture-830-1447858140.jpg
onur
27.09.2013 - 09:50

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. 

Profile picture for user XAfgun
XAfgun
26.09.2013 - 11:14

 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.

picture-2045-1496616038.jpg
vehbiakdogan
26.09.2013 - 02:35

Çalıştırdım Yanıtlarınız için çok teşekkür ederim :) 

picture-2045-1496616038.jpg
vehbiakdogan
26.09.2013 - 02:34

uygulamayı sildim en baştan yazdım :) hata vermedi hocam emülatördede açılırsa sıkıntı yok gibi :) 

picture-539-1376512244.jpg
enessen
26.09.2013 - 02:29

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.

picture-2045-1496616038.jpg
vehbiakdogan
26.09.2013 - 02:21

Enes ŞEn hocam dediğiniz gibi yaptım ama setOnclickListener in altını çizdi bu seferde 

picture-539-1376512244.jpg
enessen
26.09.2013 - 02:06

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
            }
        });


 

Profile picture for user hakantopuz58
hakantopuz58
26.09.2013 - 02:05

import işlemini yapmamış olabilirsin.o yazının üstüne gelip çıkan diyalogtan import diyebilirsin.yada kodu tamamla o şekilde tekrar bak.kolay gelsin