Soru & Cevap

Cannont Resolve Method - Context

26.01.2016 - 02:51

Merhaba android programlamaya başlangıç yapmak istedim, ilk denemelerimde bir herşey olumlu sonuclandı, hoşumada gitti android işletim sistemine uygulama yazmak;

şimdi sorunum şu bir sınıfım var Thread sınıfı ile ile genişletilmiş bir sınıf Sınıf adı Titret diyelim örnek

public class Titret extends Thread{

}

Bu sınıf içerisinde  @Override run()   methodu var doğal olarak ayrı bir kanalda çalıştırmak istiyorum çünkü işlemimi

@Override
    protected void run() {
        Vibrator v = (Vibrator) this.getSystemService(Context.VIBRATOR_SERVICE);
        v.vibrate(500);
    }

Sorun bu run metodu içerisindeki getSystemService burası hata veriyor Context ile ilgili sanırım ama tam olarak ben bu Context sorununu anlamadım
Ben burada ekranda falan herhangi birşey göstermek istemiyorum  sadece bu sınıf tetiklendiğinde telefonum titresin  yapmak istediğim bu

Şimdi şöyle bir sorun daha var ben rehber'e erişmek istiyorum erişim yine bu şekilde olacak herhangi bir Pencerede sonuc göstermek istemiyorum

benim tek istediğim consolda yani System.out.print(name)  yazdıgımda consolda cıktı yapsın bana :S  bir türlü bu Context sorununu anlayamadım zaten bilmiyorum öğrenmek istediğim için araştırdıgımda ise genelde karşıma hep uygulamanın penceresine dökülmüş sonuclar çıkıyor

Ben MainActivity kullanmadan hiç birşeyi consolda çalıştıramazmıyım :S  basit bir örnek verirseniz sevinirim

Konuya tam hakim olmadıgım için belki anlatımımda sorun olmuştur. kusura bakmayın

11 Görüntülenme

2 Cevap

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

Profile picture for user mysql_query
mysql_query
26.01.2016 - 04:01

Kodları şöyle tekrar inceledim baştan dediğinizi ilk denememde uygulayamamışım şimdi sorunsuz çalıştırdım teşekkürler.

picture-14436-1418032573.jpg
yusufonderd
26.01.2016 - 03:30

selamlar this yerine context degeri kullanmalısın. Thread için bir constructor olustur. Daha sonra Titret sınıfına  örnegin activity'den su sekilde ulaş. Titret titret=new  Titret(OrnekActivity.this); daha sonra titret nesnesiyle işlemlerini yap .



 

public class Titret extends Thread{

Context myContext;

public Titret(Context context){

this.myContext=context;

}

@Override protected void run() {

Vibrator v = (Vibrator) myContext.getSystemService(Context.VIBRATOR_SERVICE); v.vibrate(500);

}
}

 

Sabri
26.01.2016 - 03:44
Merhaba öncelikle teşekkürler cevap verdiğiniz için. Dediğiniz gibi yaptım sınıfı oluşturdum yeni bir Thread içerisinde çalışacak şu kısmı anlayamıyorum Titret titret=new Titret(OrnekActivity.this); bende bir adet Activity var adıda MainActivity böyle denediğimde bile hata alıyorum. Titret titret=new Titret(MainActivity.this); çıkamadım işin içinden