android uygulama nasıl yazılır. Android Studio'da mobil uygulama nasıl oluşturulur?
Bu öğretici, size Android Studio geliştirme ortamını kullanarak bir Android uygulamasının nasıl yazılacağının temellerini öğretecektir. Android cihazlar giderek daha yaygın hale geliyor, yeni uygulamalara olan talep her zaman artıyor. Android Studio ücretsiz, kullanımı kolay bir geliştirme ortamıdır.
Bu eğitim için, Android tarafından kullanılan dil olduğu için en azından biraz Java'ya sahip olmanız en iyisidir. Java'ya biraz aşina olduğunuzu veya bilmediğiniz bir şeyi bulmaya hazır olduğunuzu varsaydığım için eğitimde çok fazla kod olmayacak. Bir uygulama oluşturmak, gerekli tüm programları ne kadar hızlı indirip yüklediğinize bağlı olarak 30-60 dakika sürer. İlk Android uygulamanızı oluşturmaya ilişkin bu öğreticiyi izledikten sonra, kendinize yeni ve eğlenceli bir hobi bulabilir, hatta gelecek vaat eden bir mobil uygulama geliştiricisi olarak bir kariyere başlayabilirsiniz.
1. Adım: Android Studio'yu yükleyin
- JDK'nın yüklenmesi gerekiyor ( Java Geliştirme kiti) ve JRE (Java Çalıştırma Ortamı). Bu linkten indirebilirsiniz. Orada işletim sisteminiz için sürümü seçin, lisans sözleşmesini kabul edin, indirin ve kurun.
- Şimdi http://developer.android.com/sdk/index.html adresine gidin ve indirin (dikkatli olun, yaklaşık 3 gigabayt indirmeniz gerekecek).
- Kuruluma başlıyoruz ve talimatları takip ediyoruz.
2. Aşama: Yeni bir proje oluşturun
- Android Studio'yu açın.
- Menüde " Hızlı başlangıç", seçme " Yeni bir Android Studio projesi başlatın».
- Pencerede " Yeni Proje Oluştur” (açılan pencere), projenizi adlandırın “ Selam Dünya».
- Şirket adı (isteğe bağlı.*
- Tıklamak " Sonraki».
- Onay kutusunun yalnızca " üzerinde olduğundan emin olun. Telefon ve Tablet».
- İlk uygulamanızı telefonunuzda test etmeyi planlıyorsanız, Android'in doğru sürümünün seçildiğinden emin olun (telefondaki sürümden daha eski olmamalıdır).
- Tıklamak " Sonraki».
- Seçme " Boş Etkinlik».
- Tıklamak " Sonraki».
- Diğer tüm alanları olduğu gibi bırakın.
- Tıklamak " Sona ermek».
*Android projeleri için tipik şirket adı "example.name.here.com" şeklindedir.
3. Adım: Selamlamayı düzenleme
- sekmeye git aktivite_ana.xml, büyük olasılıkla zaten etkindir.
- Ekranın alt kısmındaki sekmenin etkin olduğundan emin olun tasarım(büyük ihtimalle öyledir).
- " ifadesini sürükleyin Merhaba, Dünya! » telefonun sol üst köşesinden ekranın ortasına doğru.
- Klasör ağacı ekranın sol tarafında bulunur. " adlı klasörü açın. değerler».
- Bu klasörde "" dosyasına çift tıklayın. Teller.xml».
- Bu dosyada, " metnini içeren satırı bulun. Selam Dünya!"ve bu metne ekle" Hoş geldinileBenimuygulama! ».
- Dönmek " aktivite_ana.xml».
- Metninizin telefonunuzun ekranında ortalandığından ve " metnini içerdiğinden emin olun. Merhabadünya! Hoş geldinileBenimuygulama! ».
4. Adım: Düğme Ekleme
- sekmesinde " aktivite_ana.xml» aşağıdaki sekmeyi seçin « tasarım».
- Telefonun bulunduğu pencerenin solundaki sütunda "adlı klasörü bulun. Widget'lar". Çeşitli düğmeler var.
- düğmeyi al düğme” yazıp telefon ekranına sürükleyin. Metninizin hemen altındaki ekranda ortalanmalıdır.
- Düğmenin hala seçili olduğundan emin olun (etrafındaki mavi kutu).
- Sağ alt köşede, seçilen nesnenin özelliklerini içeren bir pencere vardır. Aşağı kaydırın ve "adlı satırı bulun. metin».
- Metni değiştir " Yeni Düğme" Açık " Sonraki Sayfa».
5. Adım: İkinci Bir Etkinlik Oluşturun
- Projenin dosya sistemi ağacının en üstünde, "adlı klasöre sağ tıklayın. uygulama».
- Seçme Yeni > Etkinlik > Boş Etkinlik.
- Görünen pencerede, üst satıra " İkinci Etkinlik».
- Tıklamak " Sona ermek».
- şuraya git: aktivite_ikinci.xml' ve ' olduğundan emin olun tasarım».
- Metni, önceki adımlarda yaptığımız gibi telefonun sol üst köşesinden ekranın ortasına taşıyın.
- Metin bloğunun hala seçili olduğundan (mavi çerçeve) emin olun ve nesne özelliklerinin sağ alt köşesinde " satırını bulun. İD"ve oraya girin" metin2 ».
- Sol üst köşede (proje ağacında), " üzerine çift tıklayın. Teller.xml».
- çizginin altında
Selam Dünya! Uygulamama hoş geldiniz! aşağıdaki satırı ekleyin
İkinci sayfaya hoş geldiniz! - Dönmek " aktivite_saniye.xml».
- Metin bloğunu tekrar seçin.
- Nesnenin özelliklerinde sağ alt köşede " satırını bulun. metin"ve oraya gir «@ sicim/ikinci_sayfa».
- Metin kutusunun şimdi " yazdığından emin olun. Hoş geldiniletheikincisayfa! ”ve blog ekranın ortasına yerleştirilir.
Adım 6: Düğme için bir eylem yazın
Aşama 7: Uygulamayı test etme
- Android Studio penceresinin üst kısmındaki araç çubuğunda yeşil oynatma sembolüne tıklayın.
- Pencerede " Seçmekcihaz" seçme " öğle yemeğiemülatör» ve bir cihaz seçin.
- düğmesine tıklayın" TAMAM».
- Emülatör başladığında (bu uzun sürebilir), uygulama otomatik olarak sanal cihazda açılacaktır.
- Tüm metnin doğru görüntülendiğinden emin olun ve düğmeye tıklamak sizi bir sonraki sayfaya götürür.
Dikkat: " mesajını alırsanız HAX çekirdek modülü kurulu değil!', iki ihtimal var. Gerçek şu ki, bu sanallaştırma yalnızca modern Intel işlemciler tarafından destekleniyor ve yalnızca BIOS'ta etkinleştirmeniz gerekiyor. Bu özelliği desteklemeyen bir işlemciniz varsa, uygulamayı gerçek bir telefonda test etmeniz veya yerleşik yerine üçüncü taraf bir emülatör kullanmanız gerekecektir.
Android Studio'da .apk dosyası nasıl elde edilir
Kanaatimce bu konu bu makalede iyi bir şekilde ele alınmıştır, bu yüzden kendimi tekrar etmeyeceğim. İlk ders için en kolayı bana göründü manuel yol.
Dosyayı aldığınızda, telefonunuza kopyalayabilir ve uygulamayı yükleyebilirsiniz.
Aşama 8: Sonuç
Tebrikler! Bazı temel işlevlerle ilk Android uygulamanızı yazmayı yeni bitirdiniz. Bitmiş uygulamada bir kullanıcı karşılama sayfası ve kullanıcıyı ikinci sayfaya götürecek bir düğme bulunmalıdır.
Android uygulama geliştirmeye bir göz attınız ve bu yönde daha fazla gelişmek için ihtiyacınız olan her şeyi öğrenme arzusunu kendinizde uyandırmış olabilirsiniz.
- öğretici
Merhaba. Bugün Linux Foundation web sitesinde bir Android programlama kursu hakkında bir gönderiye rastladım ve bununla birlikte, görmek istediklerim ve bu derslerin çevirisi hakkında birçok yorum yapıldı. Şu andan itibaren, mikrodenetleyiciler için dört yıllık geliştirmenin ardından mobil cihazlar için programlama okumaya başladığımdan beri, paralel olarak dersin ilk bölümünü çevirmeye karar verdim.
Yeni başlayanlar için Android programlama. Bölüm 1
Android akıllı telefonlar ve tabletler çantalarımızda ve ceplerimizde giderek daha fazla bulunuyor ve Android programlama da daha popüler hale geliyor. Harika bir geliştirme platformudur - API iyi belgelenmiştir ve kullanımı kolaydır ve akıllı telefonunuzda çalıştırabileceğiniz bir şey oluşturmak çok eğlencelidir. Başlangıçta, Linux PC'nizde bir öykünücü kullanarak kodu oluşturup test ederek onsuz yapabilirsiniz. Bu tanıtımın iki bölümünün ilki, basit bir zamanlayıcı uygulamasının nasıl oluşturulacağını açıklar ve size Android API'ye bir giriş sağlar. Kurs, Java, XML ve programlama teknolojilerinin temel düzeyde anlaşıldığını varsayar, ancak yine de bu konuda çok belirsiz bir fikriniz olsa bile denemekten çekinmeyin.Başlangıç ve Geliştirme Ortamı
Sürümler hakkında biraz: Android'in en son sürümü 4.2'dir (Jelly Bean), ancak bu şemadan da görebileceğiniz gibi, henüz yeterince yaygın değildir. Özellikle Android sürümleri geriye dönük uyumlu olduğundan (yani 2.3 kodunuz 4.2'de çalışacaktır) ve daha sonraki bir sürüm için geliştirilen uygulamalar her zaman eski sürümde çalışmayacağından, 4.0 (Ice Cream Sandwich) veya 2.3 (Gingerbeard) için geliştirmeye başlamak en iyisidir. bir. Burada gösterilen kod, 4.0 ve 2.3 sürümlerinde çalışmalıdır.Bir geliştirme ortamı edinmenin en kolay yolu, adresinden indirilebilen Android Paketini yüklemektir. Ayrıca JDK 6'ya da ihtiyacınız olacak (sadece JRE'ye değil). Android'in gcj ile uyumlu olmadığını unutmayın. Halihazırda Eclipse veya başka bir IDE kullanıyorsanız, onu Android için özelleştirmeyi deneyebilirsiniz. Bunun nasıl yapılacağı anlatılmaktadır. Şimdi Eclipse kullanarak veya komut satırından Countdown adlı bir proje oluşturun. Ayarlarda BuildSDK 4.0.3 ve minimum SDK 2.2 ayarladım ve (Eclipse'de) BlankActivity şablonunu kullandım.
İlk Android projem: arayüz
İlk Android programımız, bir düğmeye bastıktan sonra 10 saniyeden geriye doğru sayan bir zamanlayıcı olacak. Kod yazmadan önce, bir arayüz oluşturmamız gerekiyor - kullanıcının uygulamamızı çalıştırırken göreceği şey. res/layout/activity_countdown.xml dosyasını açmanız ve bir XML şablonu oluşturmanız gerekir - Eclipse düzenleyicisini veya bir metin/XML düzenleyicisini kullanarak aşağıdakileri girin:/start ve /__00_30 dizilerine dikkat edin. Değerleri res/values/strings.xml dosyasında yer alacaktır:
Bu, Android'deki kaynaklara erişmenin genel yoludur: Sabit kodlu dizelerdense dize değişken referanslarını kullanmak daha iyidir.
İlk android projem: kod
Şimdi editörde CountdownActivity.java dosyasını açalım - ve uygulama kodumuzu yazmaya hazırız. onCreate() yöntemi için otomatik oluşturulmuş bir saplama görmelisiniz. Activity nesnesi yaratılır yaratılmaz çağrılır ve içine uygulama başladığında çalıştırılması gereken herhangi bir işlev koyabilirsiniz. (Eclipse ayrıca boş bir onCreateOptionsMenu() yöntemi oluşturabilir, ancak şimdilik bunu yok sayacağız.) Aşağıdaki kodu girin:public class CountdownActivity, Activity'yi genişletir ( private static final int MILLIS_PER_SECOND = 1000; private static final int SECONDS_TO_COUNTDOWN = 30; private TextView countdownDisplay; private CountDownTimer zamanlayıcı; @Override public void onCreate(Bundle saveInstanceState) ( super.onCreate(savedInstanceState); setContentView(R) .layout.activity_countdown); countdownDisplay = (TextView) findViewById(R.id.time_display_box); Button startButton = (Button) findViewById(R.id.startbutton); startButton.setOnClickListener(new View.OnClickListener() ( genel geçersiz onClick( Görünümü görüntüle) ( try ( showTimer(SECONDS_TO_COUNTDOWN * MILLIS_PER_SECOND); ) catch (NumberFormatException e) ( // yöntem geçersiz (tamsayı olmayan) girişi yoksayar ve // kullanabileceği bir şey için bekler) ) )); ) )
İlk projemizi oluşturmanın ne kadar kolay olduğunu görebilirsiniz: Android API, kullanabileceğimiz bir CountDownTimer içerir. Bunu ve geri sayım görüntüleme alanını Activity sınıfının özel özellikleri olarak ilan ettik. onCreate() yönteminde, XML şablonumuzu dahil etmek için setContentView yöntemini kullandık. Bu R.foo.bar sözdizimi, Android'in XML kaynaklarına erişmenin standart yoludur ve bunu daha birçok kez göreceğiz.
findViewById, sık kullanacağınız başka bir yöntemdir. Burada, zamanlayıcı çıktı alanına ve XML şablonunda açıklanan Başlat düğmesine referanslar döndürür. Bir düğme için, tıklamasını işleyebilmemiz için bir "önleyici" OnClickListener ve onClick () yöntemi ayarlanmalıdır. Burada, verilen milisaniye sayısıyla (artık kodda sabit kodlanmıştır) showTimer() yöntemini çağırır.
Peki showTimer() ne yapar:
private void showTimer(int countdownMillis) ( if(timer != null) ( timer.cancel(); ) timer = new CountDownTimer(countdownMillis, MILLIS_PER_SECOND) ( @Override public void onTick(long millisUntilFinished) ( countdownDisplay.setText("geri sayım) : " + millisUntilFinished / MILLIS_PER_SECOND); ) @Override public void onFinish() ( countdownDisplay.setText("KABOOM!"); ) ).start(); )
CountDownTimer sınıfı bizim için neredeyse tüm işi yapıyor ki bu çok güzel. Öncelikle zamanlayıcının var olup olmadığını kontrol ediyoruz ve varsa sıfırlıyoruz. Ardından, geri sayım için belirli bir milisaniye sayısına (showTimer() yönteminin parametresinden) ve geri sayım aralıkları arasında belirli bir milisaniye sayısına sahip yeni bir zamanlayıcı oluşturuyoruz. Aralıklar arasındaki süre dolduğunda, onTick() yöntemi çağrılır.
CountDownTimer soyut bir sınıftır ve alt sınıfında __onTick() ve __onFinish() yöntemleri uygulanmalıdır. Her aralıktan sonra çıktıyı bir azaltan onTick() yöntemini ve geri sayım sona erdiğinde bir mesaj görüntüleyen onFinish() yöntemini geçersiz kılıyoruz. Sonra start() zamanlayıcıyı başlatır.
Eclipse'deki "Çalıştır" komutunu kullanarak, Android öykünücüsünü otomatik olarak başlatacak olan oluşturulan uygulamayı çalıştırabilirsiniz. hakkında daha fazla bilgi edinmek istiyorsanız Android belgelerine bakın
Harika. Ama nereden başlamalı? Hangi dili öğrenmeli? Hangi kaynaklar? Ve edinilen temel beceriler nerede uygulanmalı? Makalemiz bu soruları cevaplamaya yardımcı olacaktır.
Her dilin ve çerçevenin kendi karmaşıklıkları ve nüansları, avantajları ve dezavantajları vardır. Android uygulamaları yazmak için ana dilleri göz önünde bulundurun.
java
Android Studio geliştirme ortamı tarafından desteklenen resmi programlama dili. Yıllık Stackoverflow anketine göre Java, 2018'de en popüler beş programlama dili arasına girdi.
Java öğrenmenin ilk adımı Android Studio'yu kurmaktır. Bu, IDE - Integrated Development Environment veya yerleşik geliştirme ortamı olarak adlandırılan bir yazılım türüdür. Android Studio, Android SDK, bir dizi Android geliştirme aracı ve başlamak için ihtiyacınız olan her şeyle birlikte gelir.
Resmi Google belgelerinin çoğunda Java'ya başvurulur ve ücretli ve ücretsiz kitaplıklar ve kılavuzlar bulmak zor değildir - bunlardan çok sayıda vardır.
Canlı Yazma'da uygulama geliştirme için PhoneGap'i kullanmanın ana nedenleri şunlardı:
- aynı anda birkaç platform için bir uygulama geliştirmenin zamanını ve maliyetini azaltmak (şehirdeki spor kurumlarına abonelik almak için bir başvuru);
- mevcut bir müşteri sitesini ve parçalarını kullanma yeteneği (hizmetler için ödeme ve çevrimiçi alışveriş için başvuru).
Çözüm
Genel olarak, Android uygulamaları hemen hemen her popüler dilde oluşturulabilir - her şey için çerçeveler ve yardımcı programlar vardır. Ancak, profesyonel bir Android geliştiricisi olmak, işletim sisteminin tüm özelliklerini kullanmak ve en son Android özelliklerine erişmek istiyorsanız, o zaman Java veya Kotlin sadık arkadaşlarınız olacaktır. Bu diller size tanıdık gelmese ve karmaşık görünse bile, Android işletim sistemi için çeşitli, güzel ve işlevsel uygulamalar yazmak için öğrenmeye değer.
Ve topladığımız makalemizden Android geliştirmenin teorik yönüyle tanışmaya başlamanız gerekiyor.
Her durumda, en zor kısım başlangıçtır. İlk Android uygulamamı geliştirmeye karar verdiğimde karşılaştığım durum olan bağlama girmek genellikle zordur. Bu makale, başlamak isteyip de nereden başlayacağını bilmeyenler için.
Makale, tüm uygulama geliştirme döngüsünü kapsayacaktır. Birlikte tek ekranlı basit bir Tic-Tac-Toe oyunu yazacağız (Android işletim sisteminde buna Activity denir).
Java geliştirmede deneyim eksikliği, Android'de uzmanlaşmada bir engel olmamalıdır. Bu nedenle, örneklerde Java'ya özgü yapılar kullanılmayacak (veya mümkün olduğu kadar küçültülecekler). Örneğin, PHP'de yazıyorsanız ve yazılım geliştirmenin temel ilkelerine aşinaysanız, bu makale sizin için çok faydalı olacaktır. Buna karşılık, Java geliştirme konusunda uzman olmadığım için, kaynak kodun "Java geliştirme için en iyi uygulamalar" etiketini talep etmediği varsayılabilir.
Gerekli programların ve yardımcı programların yüklenmesi
Gerekli araçları listeleyeceğim. 3 tane var:
- Android için geliştirme destekli IDE:
- Eclipse+ADT eklentisi
- IntelliJ IDEA Topluluk Sürümü
- Netbeans + nbandroid eklentisi
Yardımcı programlar yukarıda tanımlanan sırada kurulur. Listelenen tüm IDE'leri kurmanın bir anlamı yoktur (doğru olanı seçmekte zorluk çekmiyorsanız). Şu anda Java için en gelişmiş IDE'lerden biri olan IntelliJ IDEA Community Edition'ı kullanıyorum.
Sanal cihazın başlatılması
AVD Manager'ı başlattıktan ve ek paketleri (çeşitli sürümlerin SDK'ları) kurduktan sonra, gerekli parametrelerle sanal bir cihaz oluşturmaya başlayabilirsiniz. Arayüzü anlamak zor olmamalı.Aygıt listesi
proje oluştur
Bir IDE'de proje oluşturmayı içeren hazırlık faaliyetlerini en aza indirerek, özellikle proje eğitici olduğunda ve üretim yapma iddiasında olmadığında, başlamak için her zaman can atıyorum.Yani Dosya-> Yeni Proje:
F6 düğmesine basıldığında, proje sanal bir cihazda toplanacak, derlenecek ve başlatılacaktır.
proje yapısı
Önceki ekran görüntüsü, projenin yapısını göstermektedir. Bu makalede tamamen pratik hedefler peşinde koştuğumuz için, yalnızca bu süreçte kullanacağımız klasörlere odaklanacağız. Bunlar aşağıdaki dizinlerdir: gen, res Ve kaynak.Klasörde gen projeyi oluştururken otomatik olarak oluşturulan dosyalar var. Bunları manuel olarak değiştiremezsiniz.
res klasörü resimler, metinler (çeviriler dahil), varsayılan değerler, düzenler gibi kaynakları depolamak için tasarlanmıştır.
kaynak- Bu, işin ana bölümünün yer alacağı klasördür, çünkü programımızın kaynak metinlerini içeren dosyalar burada saklanır.
İlk satırlar
Activity (uygulama ekranı) oluşturulur oluşturulmaz onCreate() yöntemi çağrılır. IDE onu 2 satırla doldurdu:
super.onCreate(savedInstanceState); setContentView(R.layout.main);
setContentView yöntemi (this.setContentView'e eşdeğerdir), geçerli ekran için xml düzenini ayarlar. Ayrıca, xml düzenleri "düzen" ve ekranlar - "Etkinlik" olarak adlandırılacaktır. Uygulamadaki düzen aşağıdaki gibi olacaktır:
Bu uygulama için TableLayout idealdir. Kimlik herhangi bir kaynağa atanabilir. Bu durumda, TableLayout'a id = main_l atanır. findViewById() yöntemini kullanarak görünüme erişebilirsiniz:
özel TableLayout düzeni; // bu, KrestikinolikiActivity sınıfının bir özelliğidir. ); )
Şimdi buildGameField() yöntemini uygulamamız gerekiyor. Bunu yapmak için, matris biçiminde bir alan oluşturmanız gerekir. Bu, Game sınıfı tarafından ele alınacaktır. Öncelikle hücreler için bir Square sınıfı ve nesneleri bu hücreleri dolduracak bir Player sınıfı oluşturmanız gerekir.
kare.java
paket com.example; public class Square ( private Player player = null; public void fill(Player player) ( this.player = player; ) public boolean isFilled() ( if (player != null) ( true döndür; ) false döndür; ) public Player getPlayer () ( oyuncuya dönüş; ) )Player.java
paket com.example; public class Player ( private String adı; public Player(String name) ( this.name = name; ) public CharSequence getName() ( return (CharSequence) name; ) )Uygulamamızın tüm sınıfları src klasörü içerisinde yer almaktadır.
oyun.java
paket com.example; public class Game ( /** * field */ private Square field; /** * Constructor * */ public Game() ( field = new Square; squareCount = 0; // alanı doldurma (int i = 0, l = alan.uzunluk;iKrestikinolikiActivity yapıcısında oyun başlatma.
public KrestikinolikiActivity() ( game = new Game(); game.start(); // daha sonra uygulanacaktır)
KrestikinolikiActivity sınıfının buildGameField() yöntemi. Tabloya (oyun alanı) dinamik olarak satırlar ve sütunlar ekler:
özel Düğme düğmeleri = yeni Düğme; //(....) özel geçersiz buildGameField() ( Kare alan = game.getField(); for (int i = 0, lenI = field.length; i
Satır 8, View.OnClickListener arabirimini uygulayan bir nesne oluşturur. İç içe bir Listener sınıfı oluşturalım. Yalnızca KrestikinolikiActivity'den görünür olacaktır.
genel sınıf Listener, View.OnClickListener'ı uygular ( private int x = 0; private int y = 0; public Listener(int x, int y) ( this.x = x; this.y = y; ) public void onClick(View view) ( Düğme düğmesi = (Düğme) görünümü; ) )
Oyunun mantığını uygulamak için kalır.
genel sınıf Oyun ( /** * oyuncular */ özel Oyuncu oyuncuları; /** * alan */ özel Kare alan; /** * oyun başladı mı? */ özel boole başladı; /** * mevcut oyuncu */ özel Player activePlayer; /** * Dolu hücrelerin sayısını sayar */ private int dolu; /** * Toplam hücreler */ private int squareCount; /** * Yapıcı * */ public Game() ( field = new Square; squareCount = 0; // alanı dolduruyoruz (int i = 0, l = alan.uzunluk; i
kazananın belirlenmesi
K. O., X veya O'yu alanın uzunluğuna eşit bir çizgide dikey, yatay veya çapraz olarak sıralayan oyuncunun tic-tac-toe kazandığını öne sürüyor. Akla gelen ilk düşünce, her durum için yöntemler yazmaktır. Sorumluluk Zinciri modelinin bu durumda iyi çalışacağını düşünüyorum. Bir arayüz tanımlayınpaket com.example; public interface WinnerCheckerInterface ( public Player checkWinner(); )
Oyun, kazananı belirleme sorumluluğuna sahip olduğu için bu arayüzü uygular. Her biri kendi tarafını test edecek sanal "yan hakemler" yaratmanın zamanı geldi. Hepsi WinnerCheckerInterface arayüzünü uygular.
WinnerCheckerHorizontal.java
paket com.example; genel sınıf WinnerCheckerHorizontal, WinnerCheckerInterface'i uygular ( private Game game; public WinnerCheckerHorizontal(Game game) ( this.game = game; ) public Player checkWinner() ( Square field = game.getField(); Player currPlayer; Player lastPlayer = null; için (int) i = 0, len = alan.uzunluk;iWinnerCheckerVertical.java
paket com.example; genel sınıf WinnerCheckerVertical, WinnerCheckerInterface'i uygular ( private Game game; public WinnerCheckerVertical (Game game) ( this.game = game; ) public Player checkWinner() ( Square field = game.getField(); Player currPlayer; Player lastPlayer = null; için (int) i = 0, len = alan.uzunluk;iWinnerCheckerDiagonalLeft.java
paket com.example; genel sınıf WinnerCheckerDiagonalLeft, WinnerCheckerInterface'i uygular ( private Game game; public WinnerCheckerDiagonalLeft(Game game) ( this.game = game; ) public Player checkWinner() ( Square field = game.getField(); Player currPlayer; Player lastPlayer = null; int SuccessCounter = 1; for (int i = 0, len = alan.uzunluk; iWinnerCheckerDiagonalRight.java
paket com.example; genel sınıf WinnerCheckerDiagonalRight, WinnerCheckerInterface'i uygular ( private Game game; public WinnerCheckerDiagonalRight(Game game) ( this.game = game; ) public Player checkWinner() ( Square field = game.getField(); Player currPlayer; Player lastPlayer = null; int SuccessCounter = 1; for (int i = 0, len = alan.uzunluk; iBunları Oyun yapıcısında başlatalım:
//(....) /** * "Yargıçlar" =). Her dönüşten sonra * bir kazanan olup olmadığını * kontrol edecekler. //(....) genel Oyun() ( //(....) WinnerCheckers = yeni WinnerCheckerInterface; WinnerCheckers = New WinnerCheckerHorizontal(this); WinnerCheckers = yeni WinnerCheckerVertical(this); WinnerCheckers = new WinnerCheckerDiagonalLeft(bu); WinnerCheckers = yeni WinnerCheckerDiagonalRight(this); //(....) )
checkWinner() uygulaması:
public Player checkWinner() ( for (WinnerCheckerInterface winChecker: winCheckers) ( Player win= winChecker.checkWinner(); if (winner != null) ( kazananı iade et; ) ) null döndür; )
Her hamleden sonra kazananı kontrol ediyoruz. Listener sınıfının onClick() yöntemine kod ekleyin
public void onClick(View view) ( Button button = (Button) view; Game g = game; Player player = g.getCurrentActivePlayer(); if (makeTurn(x, y)) ( button.setText(player.getName())) ; ) Oyuncu kazananı = g.checkWinner(); if (winner != null) ( gameOver(winner); ) if (g.isFieldFilled()) ( // alan doluysa gameOver(); ) )
gameOver() yöntemi 2 varyantta uygulanır:
private void gameOver(Player player) ( CharSequence text = "Player \"" + player.getName() + "\" kazandı!"; Toast.makeText(this, text, Toast.LENGTH_SHORT).show(); game.reset (); fresh(); ) özel geçersiz gameOver() ( CharSequence text = "Draw"; Toast.makeText(this, text, Toast.LENGTH_SHORT).show(); game.reset(); fresh(); )
Java için gameOver(Player player) ve gameOver() farklı yöntemlerdir. Toast.makeText Builder'ı kullanarak hızlı bir şekilde bir bildirim oluşturabilir ve görüntüleyebilirsiniz.fresh(), alanın durumunu günceller:
özel geçersiz yenileme() ( Kare alan = game.getField(); for (int i = 0, len = field.length; i
Hazır! Umarım bu makale, Android işletim sistemi geliştirme dünyasında kendinizi rahat hissetmenize yardımcı olmuştur. İlginiz için teşekkür ederim!
Bitmiş uygulamanın videosu
Android Studio'da mobil uygulama nasıl oluşturulur?
Android Studio, Google'ın Android uygulamaları için resmi IDE olarak adlandırdığı IntelliJ IDEA tabanlı entegre bir geliştirme ortamıdır (IDE).
Bu kılavuz açıklar android uygulama geliştirme:
- Dosya Gezgini'ni kullanarak dosyalar arasında gezinin
- AndroidManifest.xml dosyasını yükleme
- Dosyaları Bir Projeye İçe Aktarma
- Dinamik önizleme özelliğine sahip gelişmiş düzen düzenleyici
- Uygulamalarda hata ayıklamak için Logcat ve Android Monitor kullanma
Android Studio'ya Başlarken
Pencerede Android Studio'yu başlatın Android Studio Kurulum Sihirbazı seçme Yeni bir Android Studio projesi başlatın(yeni bir proje başlatmak).
Pencerede Yeni Proje Oluştur seçme Uygulama Adı(uygulama adı) Fortune ball olarak şirket etki alanına girin; alanda Proje yeri uygulamanın kaydedileceği konumu seçin. Tıklamak Sonraki.
önünüzde bir pencere var Android Cihazları Hedefleyin. Seçme Telefon ve Tablet. sahada Minimum SDK belirtmek API 15. Tıklamak Sonraki.
Pencerede Mobil'e etkinlik ekleme seçme temel aktivite. Tüm seçenekleri değerlendirin, bu pencere mevcut düzenlere genel bir bakış sunar.
Tıklamak Sonraki.
Pencerede Etkinliği Özelleştir Ekran görüntüsü aşağıda bulunan , değiştirebilirsiniz etkinlik adı(etkinlik adı), Düzen Adı(düzen adı) Başlık(ortak isim) ve Menü Kaynak Adı(kaynak menüsünün adı). Varsayılanları bırakın ve tıklayın Sona ermek.
Birkaç saniye sonra aşağıdaki pencere görünecektir:
Aynı pencere cihazınızda veya öykünücünüzde açılacaktır. Öykünücü bir aygıt işlevi görür, yüklenmesi biraz zaman alır.
Bu zaten bir uygulama. Çok eksik, ama şimdi bir sonraki adıma geçebilirsiniz.
Proje ve dosya yapısı
Pencere proje dosyalarını gösterir.
Açılır menüde (aşağıdaki ekran görüntüsü), dosyalar için birkaç filtre vardır. Başlıcaları Project ve Android'dir.
Proje filtresi tüm uygulama modüllerini gösterecektir - her projenin en az bir modülü vardır. Diğer modül türleri, üçüncü taraf kitaplıklardan modülleri veya diğer Android uygulamalarından (Android Wear uygulamaları, Android TV uygulamaları gibi) modülleri içerir. Her modülün, bir gradle dosyası, kaynaklar ve kaynak dosyalar (java dosyaları) dahil olmak üzere kendi özellikleri vardır.
Not. Proje açık değilse, ekran görüntüsünde gösterildiği gibi panelin sol tarafındaki Proje sekmesine tıklayın. Varsayılan olarak, dosyaları belirli bir türe göre gruplandıran bir Android filtresi yüklenir. En üst düzeyde, aşağıdaki klasörleri göreceksiniz:
- tezahür eder
- Gradle Komut Dosyaları
Aşağıdaki bölümlerde bildirimlerden başlayarak bu klasörlerin her biri ayrıntılı olarak açıklanmaktadır.
AndroidManifest.xml'e Genel Bakış
Her Android uygulamasının manifests klasöründe bulunan bir AndroidManifest.xml dosyası vardır. Bu XML dosyası, sisteminize uygulamanın gereksinimleri hakkında bilgi verir. Bu dosyanın varlığı zorunludur, çünkü Android sisteminin bir uygulama oluşturmasına izin veren odur.
Bildirimler klasörünü ve AndroidManifest.xml dosyasını açın. Çift tıklama dosyayı açacaktır.
Bildirim ve uygulama etiketleri bildirim için gereklidir ve yalnızca bir kez görünür.
Her etiket, öğenin adıyla birlikte bir dizi özellik de tanımlar. Örneğin, uygulamadaki bazı özellikler şunlar olabilir:
android:simge, android:etiket ve android:tema
Diğer şeylerin yanı sıra manifesto görünebilir:
- use-permission: Uygulamanın düzgün çalışması için verilen özel bir izni ister. Örneğin, android.permission.INTERNET iznini eklemeniz durumunda, bir uygulamanın kullanıcıdan ağa erişim izni istemesi gerekir.
- Activity: Görsel kullanıcı arabirimi ve mantıktan kısmen sorumlu olan bir etkinliği bildirir. Uygulamada sağlanan herhangi bir aktivite bildirime eklenmelidir - sistem işaretlenmemiş aktiviteyi fark etmeyecek ve uygulamada görüntülenmeyecektir.
- hizmet: Diğer uygulamalarla uzun süren işlemleri veya gelişmiş API iletişimlerini uygulamak için kullanacağınız bir hizmet ekler. Bu durumda bir örnek, bir uygulamanın veri aldığı bir ağ araması olabilir. Etkinliklerin aksine, hizmetlerin kullanıcı arabirimleri yoktur.
- alıcı: yayın mesajı alıcısı sayesinde, uygulamanın diğer bileşenleri çalışmıyorken bile uygulama, sistem mesajları veya diğer uygulamalardan gelen mesajlar hakkında sinyaller alır. Böyle bir duruma örnek olarak, şarj düzeyi düşük bir pil ve bunun işletim sistemine bildirilmesi gösterilebilir.
Etiketlerin tam listesi, Android Developer sitesindeki bildirim dosyasında bulunabilir.
Bildirim dosyası ayarları
Etkinliğe aşağıdaki özniteliği ekleyin:
android:screenOrientation=”portre”. ekranı yalnızca portre moduyla sınırlamak için. Bu yapılmazsa, cihazın konumuna bağlı olarak ekran yatay veya dikey modda olacaktır. Niteliği ekledikten sonra, bildirim dosyası ekran görüntüsündeki gibi görünecektir.
Uygulamayı oluşturun ve çalıştırın. Cihazınızda test yapıyorsanız, ters çevirin, AndroidManifest'te devre dışı bıraktıysanız ekranın yatay konuma gelmediğinden emin olun.
Gradle'a Genel Bakış
Gradle'a geçelim. Gradle, bir Android projesini cihazlara kurulabilen kurulabilir bir APK'ye dönüştürür. build.gradle dosyası, Gradle betiklerinde iki düzeyde bulunur: modül ve proje.
build.gradle dosyasını açın (Modül:uygulama). Varsayılan gradle kurulumunu göreceksiniz:
eklentiyi uygula: "com.android.application" android (compileSdkVersion 25buildToolsVersion "25.0.2"defaultConfig (applicationId "com.raywenderlich.fortuneball"minSdkVersion 15targetSdkVersion 25versionCode 1versionName "1.0"testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner")buildTypes (release (minifyEnabled falseproguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"))) bağımlılıklar (derleme fileTree(dir: "libs", şunları içerir: ["*.jar"])androidTestCompile(" com.android.support.test.espresso:espresso-core:2.2.2", (grubu hariç tutun: "com.android.support", modül: "support-annotations")) "com.android.support:appcompat-" derleyin v7:25.1.0"derleme "com.android.support:design:25.1.0"testCompile "junit:junit:4.12")
Ana bileşenleri inceleyelim:
- eklenti uygula: 'com.android.application', Android eklentisini üst düzeyde uygular ve uygulamayı oluşturmak için gereken üst düzey görevleri kullanılabilir hale getirir.
- android(…) bölümünün yanında targetSdkVersion gibi ayar seçenekleri yer almaktadır. Uygulamanız için hedef SDK, en son API düzeyinde olmalıdır. Diğer bir önemli bileşen ise minSDKVersion'dur (uygulamanın çalışabilmesi için cihaza yüklenmesi gereken minimum SDK sürümünü tanımlar). Örneğin, SDK sürümü 14 ise uygulama o cihazda çalışamayacaktır çünkü bu özel durumda desteklenen minimum sürüm 15'tir.
- Son bileşen bağımlılıklardır(…). 'com.android.support:appcompat-v7:VERSION' derlemesini not edin ve 'com.android.support:design:VERSION' derlemesini yapın. Yeni ve eski API'ler için destek ve uyumluluk özellikleri sağlarlar.
Android uyumluluk kitaplıklarına ek olarak, bağımlılıklar(…) bileşenine üçüncü taraf kitaplıkları ekleyebilirsiniz.Örneğin, animasyon kitaplığı kullanıcı arabirimi efektleri içerir. Bağımlılıkları bulun, ardından aşağıdaki iki satırı aşağıya ekleyin:
bağımlılıklar ( ... derleyin "com.daimajia.easing:library: [e-posta korumalı]"com.daimajia.androidanimations:library" derleyin: [e-posta korumalı]"}
Burada üçüncü taraf bağımlılıkları ekleyebilirsiniz. Kitaplıklar otomatik olarak indirilir ve Android Studio'ya entegre edilir. Bu bağımlılıkları uygulamanıza entegre etmek için Şimdi Senkronize Et'e tıklayın.
Senkronizasyon birkaç saniye sürer. Gradle güncellemeleri, alt panelin Mesajlar sekmesinde görünür.
Şimdilik Gradle'da ihtiyacınız olacak tüm ayarlar bunlar. Bu tür manipülasyonlar, uygulamada animasyon ekleyecektir.
Dosya içe aktarma
Bir Android uygulaması geliştirirken, diğer kaynaklarla entegrasyon önemlidir: resimler, özel yazı tipleri, sesler, videolar vb. başvuru. Fortune Ball uygulamamızın görüntüleri çekilebilir klasörlere aktarması gerekecek. Bu klasörler, resimler veya özel XML çizimleri içerebilir (yani, XML koduyla şekiller çizebilir ve bunları mizanpajlarınızda kullanabilirsiniz).
Android Studio'da Android'den Project'e geçiş
res klasörünü açın (uygulama > src > ana). Res klasörüne sağ tıklayın, Yeni> Android kaynak dizini'ni seçin.
Yeni Kaynak Dizini adlı bir pencere görünecektir.
Kaynak türü açılır listesinden çizilebilir seçeneği belirleyin. Kullanılabilir niteleyiciler listesinde, Yoğunluk'u seçin, ardından ekran görüntüsünde vurgulanan düğmeyi tıklayın.
Bir sonraki pencerede Yoğunluk listesinden XX-Yüksek Yoğunluk'u seçin. Tamam'ı tıklayın.
Drawable-xhdpi, Drawable-hdpi ve Drawable-mdpi klasörlerini oluşturmak için her şeyi tekrarlayın. Yoğunluk listesinden sırasıyla X-Yüksek, yüksek (yüksek) ve orta (orta) yoğunluğu seçin.
Yoğunluk belirleyicisine (örn. xxhdpi, xhdpi, hdpi) sahip her klasör, belirli bir yoğunluk veya çözünürlüğe eşlenen görüntüler içerir. Örneğin,drawable-xxhdpi klasörü, yüksek yoğunluklu bir görüntü içerir, bu, yüksek çözünürlüklü ekrana sahip bir Android cihazının görüntüyü bu klasörden çekeceği anlamına gelir. Görüntü, ekran kalitesinden bağımsız olarak tüm Android cihazlarda iyi görünecektir. Ekran yoğunluğu hakkında daha fazla bilgi için Android belgelerine bakın.
Tüm "çizilebilir" klasörleri oluşturduktan sonra, klasördeki paketlenmemiş içeriğe geri dönebilir ve görüntüyü her klasörden kopyalayabilir (cmd+C) ve uygun Android Studio klasörüne yerleştirebilirsiniz (cmd+V).
Dosyaları yerleştirdikten sonra Kopyala penceresini göreceksiniz. Tamam'ı seçin.
XML Görünümü ve Dinamik Mizanpaj Önizlemeleri
Kullanıcıların etkileşime girebileceği bir düzen oluşturmak, sürecin önemli bir parçasıdır. Android Studio'da bu, düzen düzenleyicide yapılabilir. res/layout'tan content_main.xml dosyasını açın. Tasarım sekmesinde arayüz öğelerini (düğmeler, metin alanları) aktarabilirsiniz.
Tasarımın sağında, XML'i doğrudan mizanpajda düzenlemenize izin veren bir Metin sekmesi vardır.
Görünümü oluşturmadan önce bazı değerlerin tanımlanması gerekir. res/values sekmesinde strings.xml dosyasını açın ve aşağıdakileri ekleyin:
strings.xml, uygulamada görünen tüm dizeleri içerir. Bu satırları ayrı dosyalara bölmek, uluslararasılaştırmayı basitleştirir; uygulamanızın gerektirdiği her dil için yalnızca bir dize dosyasına ihtiyacınız vardır. Uygulamanızı başka dillere çevirmeyi düşünmüyorsanız bile, bir dize dosyası kullanmanız her zaman önerilir.
res/values içinde dimens.xml dosyasını açın ve aşağıdakileri ekleyin:
dimens.xml boyut değerlerini, paftalar için boşluk sınırlarını, metin boyutunu vb. içerir. Bu verilerin daha sonra pafta oluşturmak için kullanılabilmesi için bir dosyaya kaydedilmesi önerilir.
content_main.xml dosyasına geri dönün ve dosyanın tüm içeriğini aşağıdaki kodla değiştirin:
Bu oldukça büyük kod, FortuneBall adlı bir uygulama düzeni oluşturur. En üst düzeyde, bir RelativeLayout eklediniz (göreli düzen, alt bileşenlerin üst bileşene göre konumunu tanımlar). RelativeLayout, ana bileşenin boyutuna sığacak şekilde genişletilebilir.
Göreceli işaretleme, iki parça metin, bir resim ve bir düğme ekler. Tüm bu ayrıntılar eklendikleri sırayla görünür olacaktır. İçerikleri strings.xml (metin) ve çizilebilir (görüntüler) olarak okunabilir.
content_main.xml güncellenirken, Önizleme penceresinin kullanıcı arayüzünü güncellediğini unutmayın:
Not: önizleme penceresi görünmüyorsa, Metin sekmesinde sağdaki işaretleme düzenleyici panelinde Önizleme düğmesine tıklayın.
Oluşturun ve çalıştırın.
Ve şimdi uygulamanın düzenini oluşturdunuz. Ancak bu noktada, sadece güzel bir görüntü - düğmeyi tıklamak hiçbir şey yapmaz.
Etkinlik ve Görünümü Birleştirme
Bir uygulamada mantıksal bağlantılar kurmak için app/src/main/java konumunda bulunan java dosyalarını kullanabilirsiniz.
MainActivity.java'yı açın ve bu verileri mevcut olanların altına ekleyin:
java.util.Random'u içe aktarın;android.view.View'ı içe aktarın;android.widget.Button'u içe aktarın;android.widget.ImageView'ı içe aktarın;android.widget.TextView'ü içe aktarın; com.daimajia.androidanimations.library.Techniques'i içe aktarın; com.daimajia.androidanimations.library.YoYo'yu içe aktarın;
İlk beş içe aktarma, kodunuzdaki ilgili sınıflara işaret eder: Random, View, Button, ImageView ve TextView. Sonraki iki içe aktarma, kütüphanelerden iki sınıf kullanacağınızı gösterir. animasyonlar için build.gradle. MainActivity.java'da, MainActivity sınıfına şunu ekleyin:
String servetList = ("Buna güvenme","Daha sonra tekrar sor","Ona güvenebilirsin","Şüphesiz","Görünüm o kadar iyi değil","Kesinlikle öyle","İşaretler evet'i işaret et","Evet kesinlikle","Evet","Kaynaklarım HAYIR diyor"); TextView mFortuneText;Button mGenerateFortuneButton;ImageView mFortuneBallImage;
Bu kısa kod parçasında, aktivite için 4 değişken belirlediniz. İlki, olası durumları tanımlayan dizelerdir, diğer üçü, düzen/işaretlemede oluşturduğunuz UI öğeleridir.
Şimdi onCreate() yönteminin içeriğini aşağıdaki verilerle değiştirin:
// 1:super.onCreate(savedInstanceState);// 2:setContentView(R.layout.activity_main);Araç Çubuğu araç çubuğu = (Araç Çubuğu) findViewById(R.id.toolbar);setSupportActionBar(araç çubuğu);// 3:mFortuneText = (TextView) findViewById(R.id.fortuneText);mFortuneBallImage = (ImageView) findViewById(R.id.fortunateImage);mGenerateFortuneButton = ( düğme) findViewById(R.id.fortuneButton); // 4:mGenerateFortuneButton.setOnClickListener(yeni görüş.OnClickListener() (@Overridepublic void onClick( görüş görüntüle) (// 5:int dizini = yeni Rastgele().nextInt(fortuneList.length);mFortuneText.setText(fortuneList);// 6:YoYo.with(Techniques.Swing).duration(500).playOn(mFortuneBallImage);));));
- Etkinliğin hazır olup olmadığını kontrol edin (üst sınıf uygulaması).
- Bu etkinliğin düzeninin daha önce oluşturduğunuz düzen tarafından temsil edildiğini belirtin, araç çubuğunu kontrol edin.
- Düzenin görünümlerinde daha önce oluşturduğunuz üç değişkenin değerlerini findViewById yöntemini kullanarak doldurun. Kimlik değeri, XML düzenindeki ile aynıdır.
- Düğmeye bir OnClickListener ekleyin. Bu, sırayla bir düğme tıklamasıyla çağrılan işlevselliği kapsayan (paketleyen) basit bir sınıftır.
- Bu uygulama için fal listesinden rastgele bir seçim yapın ve bunu göstermek için fal metnini güncelleyin.
- Gradle dosyasına bir bağımlılık eklemek için üçüncü taraf bir kitaplık kullanın ve böylece uygulamaya animasyon ekleyin.
Neredeyse hazır. Ancak kayan düğmeyi kaldırmanız gerekir. res/layout'a gidin ve Activity_main.xml dosyasını açın.
Bu düzen dosyası, daha önce düzenlediğiniz content_main.xml dosyasına bir bağlantı içerir. İçeriği varsayılan olarak tanımlar (araç çubuğu ve kayan eylem düğmesi). Ancak, bu özel uygulamada (Fortune Ball), kayan düğmeye gerek yoktur. Bu nedenle, aşağıdaki kod bloğunu xml dosyasından kaldırın:
Artık sağ alt köşede kayan düğme yok.
Bir soru sorun (Benim şansım nedir?) - düğmeye basın. Uygulamayı kontrol edin.
android monitör
Android Studio çok çeşitli araçlar içerir. Android Studio penceresinin altındaki Android Monitor sekmesini açın.
Burada geliştirici için birçok seçenek bulacaksınız.
- Soldaki kamera ve oynat düğmesi, ekran görüntüsü almanızı ve video kaydetmenizi sağlar.
- Büyüteç, uygulama belleği analizi gibi bir dizi ek seçenek açar.
- Mizanpaj Denetçisi, bir uygulamanın arayüzünün neden belirli bir şekilde göründüğünü belirleyen görsel bir arayüz sağlar.
LogCat, belirli uygulama verilerini derinlemesine inceleme veya hatta belirli karakterler içermiyorsa mesajları filtrelemek için arama çubuğunu kullanma yeteneğiyle sistem mesajlarına ayrıntılı bir genel bakış sağlar.
Yukarıdaki ekran görüntüsünde gösterildiği gibi sağ üst köşede Yalnızca seçilen uygulamayı göster'i seçtiğinizden emin olun. Artık yalnızca uygulamanızın mesajları görünür olacak.
MainActivity.java'da, içe aktarma listesine aşağıdakileri ekleyin:
android.util.Log'u içe aktarın;
MainActivity.java'daki onCreate() öğesinin sonuna aşağıdaki satırı ekleyin:
Log.v("FORTUNE UYGULAMA ETİKETİ","onCreateCalled");
Log.v iki parametre çağırır - etiket ve mesaj. Bu durumda etiket "FORTUNE APP TAG", mesaj ise "onCreateCalled" olarak tanımlanır.
Logcat panelinde günlük mesajını görmek için uygulamayı çalıştırın.
LogCat içeriğini filtreleyin, konsolun üzerindeki arama kutusuna onCreateCalled yazın:
Ardından, tüm günlük mesajlarını tekrar görmek için arama metnini silin.
Bir başka kullanışlı özellik de hata mesajlarını görüntüleme yeteneği olan logcat'tir. İşlerin nasıl yürüdüğünü görmek için tamamen işlevsel uygulamanıza bir hata ekleyin.
MainActivity.java'ya gidin ve onCreate() içindeki şu satırı değiştirin:
//mFortuneText = (TextView) findViewById(R.id.fortuneText);
Uygulamayı başlat. Şansım Nedir? Çalışmıyor!
Bir hata olduğunu bilmiyorsanız, hatayı nasıl düzeltirsiniz? Logcat bu konuda yardımcı olacaktır.
Logcat paneline gidin - şuna benzer:
Burada çok fazla kırmızı metin var. Bu durumda sorun, MainActivity.java dosyasındaki 50. satırdadır. LogCat bu bağlantıyı mavi bir hiper bağlantıya dönüştürdü. Tıklarsanız, sorunun ne olduğunu öğrenebilirsiniz.
mFortuneText = (TextView) findViewById(R.id.fortuneText) değiştirerek bir değişken yarattınız ancak değerini belirtmediniz - dolayısıyla boş işaretçi istisnası. Geri dönün ve kodu değiştirin, uygulamayı çalıştırın. Bu sefer her şey sorunsuz çalışıyor. Logcat, hataları bulmak için kullanışlı bir araçtır.
Bu makaleyi paylaş: