Android Programlama Günlüğüm
Andoid programlamayı öğrenmeye çalışıyorum. Ana kaynağım şu an için Udacity. Alıntılar ve ders programı da genelde Udacity'den olacak.
9 Şubat 2017 Perşembe
8 Şubat 2017 Çarşamba
4 Şubat 2017 Cumartesi
GridView + ArrayAdapter
İstersek, ListView yerine GridView'de kullanabiliriz.
Örnek GridView XML'i:
<?xml version="1.0" encoding="utf-8"?> <GridView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/gridview" android:layout_width="match_parent" android:layout_height="match_parent" android:columnWidth="90dp" android:numColumns="auto_fit" android:verticalSpacing="10dp" android:horizontalSpacing="10dp" android:stretchMode="columnWidth" android:gravity="center" />
ArrayAdapter<String> itemsAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, words); // Find the {@link ListView} object in the view hierarchy of the {@link Activity}.// There should be a {@link ListView} with the view ID called list, which is declared in the// activity_numbers.xml layout file.GridView gridView = (GridView) findViewById(R.id.gridview); // Make the {@link ListView} use the {@link ArrayAdapter} we created above, so that the// {@link ListView} will display list items for each word in the list of words.// Do this by calling the setAdapter method on the {@link ListView} object and pass in// 1 argument, which is the {@link ArrayAdapter} with the variable name itemsAdapter.gridView.setAdapter(itemsAdapter);
SONUÇ
ArrayAdapter + ListView
Konuyu anlatan bi kaynak: https://guides.codepath.com/android/Using-an-ArrayAdapter-with-ListView
Aşağıda örnek XML.
Burada kritik nokta android:id vermiş olmamız.
Ölçülerle ilgili bilgileri dimens.xml içinden alıyor.
Numbers sayfasını düzenlediğimiz için NumbersActivity içerisine yazıyoruz Java kodlarını.
Yine onCreate fonksiyonunun içerisine yazıyoruz ki, activity açılır açılmaz uygulansın.
Öncelikle Array değil bir ArrayList oluşturuyoruz.
ArrayList <String> words = new ArrayList <String>();
Ardından listeye elemanları ekliyoruz: words.add ("one");
Liste tamam, oluşturduk. Bunun arkasından Adapter olayına giriyoruz. Yani bu listeyi adapter'a verip, arkamıza yaslanacağız. Döngü vs. kullanmadan bu işi halledecek. Tabi bu adapter'ın döngü kullanmadığı anlamına gelmiyor fakat en azından bizi uğraştırmadan yapıyor bu işi.
Adapter'i neden kullandığımızı Udacity eğitimlerinde gördük. Olay performans olayı.
Biz kendi imkanlarımızla döngüyle bu işi halletmeye kalksak, ekranın dışında kalan view'leri silmekle uğraşmamız gerek. Tabi tüm optimizasyonu yapmak zor olacağı için uygulamamız gereksiz yere memory kaynaklarını tüketecek.
Veriyoruz ArrayList'imizi ArrayAdapter'a, gerisine karışmıyoruz.
ArrayAdapter declaration bu şekilde:
simple list item olayı, sanırım otomatik oluşturduğu view'in adı, ya da başka bir elementin.
Ardından fiziksel olarak xml'de oluşturduğumuz ListView'i buradaki listView objesine atıyoruz. Daha önce activity_numbers.xml içinde ListView'e list id'sini vermiştik.
Ardından son hamle, dinamik oluşturduğumuz listView'le, itemsAdapter'i ilişkilendiriyoruz.
Aşağıda örnek XML.
Burada kritik nokta android:id vermiş olmamız.
Ölçülerle ilgili bilgileri dimens.xml içinden alıyor.
<?xml version="1.0" encoding="utf-8"?>
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/list"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.android.miwok.NumbersActivity"/>
Numbers sayfasını düzenlediğimiz için NumbersActivity içerisine yazıyoruz Java kodlarını.
Yine onCreate fonksiyonunun içerisine yazıyoruz ki, activity açılır açılmaz uygulansın.
Öncelikle Array değil bir ArrayList oluşturuyoruz.
ArrayList <String> words = new ArrayList <String>();
Ardından listeye elemanları ekliyoruz: words.add ("one");
Liste tamam, oluşturduk. Bunun arkasından Adapter olayına giriyoruz. Yani bu listeyi adapter'a verip, arkamıza yaslanacağız. Döngü vs. kullanmadan bu işi halledecek. Tabi bu adapter'ın döngü kullanmadığı anlamına gelmiyor fakat en azından bizi uğraştırmadan yapıyor bu işi.
Adapter'i neden kullandığımızı Udacity eğitimlerinde gördük. Olay performans olayı.
Biz kendi imkanlarımızla döngüyle bu işi halletmeye kalksak, ekranın dışında kalan view'leri silmekle uğraşmamız gerek. Tabi tüm optimizasyonu yapmak zor olacağı için uygulamamız gereksiz yere memory kaynaklarını tüketecek.
Veriyoruz ArrayList'imizi ArrayAdapter'a, gerisine karışmıyoruz.
ArrayAdapter declaration bu şekilde:
ArrayAdapter<String> itemsAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, words);
simple list item olayı, sanırım otomatik oluşturduğu view'in adı, ya da başka bir elementin.
Ardından fiziksel olarak xml'de oluşturduğumuz ListView'i buradaki listView objesine atıyoruz. Daha önce activity_numbers.xml içinde ListView'e list id'sini vermiştik.
ListView listView = (ListView) findViewById(R.id.list);
Ardından son hamle, dinamik oluşturduğumuz listView'le, itemsAdapter'i ilişkilendiriyoruz.
listView.setAdapter(itemsAdapter);
package com.example.android.miwok; import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.widget.ArrayAdapter;import android.widget.ListView; import java.util.ArrayList; public class NumbersActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_numbers); ArrayList <String> words = new ArrayList <String>(); words.add("one"); words.add("two"); words.add("three"); words.add("four"); words.add("five"); words.add("six"); words.add("seven"); words.add("eight"); words.add("nine"); words.add("ten"); // Create an {@link ArrayAdapter}, whose data source is a list of Strings. The // adapter knows how to create layouts for each item in the list, using the // simple_list_item_1.xml layout resource defined in the Android framework. // This list item layout contains a single {@link TextView}, which the adapter will set to // display a single word. ArrayAdapter<String> itemsAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, words); // Find the {@link ListView} object in the view hierarchy of the {@link Activity}. // There should be a {@link ListView} with the view ID called list, which is declared in the // activity_numbers.xml layout file. ListView listView = (ListView) findViewById(R.id.list); // Make the {@link ListView} use the {@link ArrayAdapter} we created above, so that the // {@link ListView} will display list items for each word in the list of words. // Do this by calling the setAdapter method on the {@link ListView} object and pass in // 1 argument, which is the {@link ArrayAdapter} with the variable name itemsAdapter. listView.setAdapter(itemsAdapter); } }
Array vs ArrayList
Create
Create String [] names = new String [2];
ArrayList <String> names = new ArrayList <String>();
Modify Element
names [0] = "Ahmet";
names.add("Ahmet");
names.remove("Ahmet");
Access Element
names [0];
names [1];names (0);
names (1);
Size
anmes.length
names.size();
Create String [] names = new String [2];
ArrayList <String> names = new ArrayList <String>();
Modify Element
names [0] = "Ahmet";
names.add("Ahmet");
names.remove("Ahmet");
Access Element
names [0];
names [1];names (0);
names (1);
Size
anmes.length
names.size();
Working with ArrayList
ArrayList <String> restaurantsToTry = new ArrayList <String>();
restaurantsToTry.add("Morning Cafe");
restaurantsToTry.add("BBQ Time");
restaurantsToTry.remove("Morning Cafe");
int numberOfRestaurants = restaurantsToTry.size();
restaurantsToTry.add("Morning Cafe");
restaurantsToTry.add("BBQ Time");
restaurantsToTry.remove("Morning Cafe");
int numberOfRestaurants = restaurantsToTry.size();
ArrayList
https://developer.android.com/reference/java/util/ArrayList.html
- Array'ın oluşturulduktan sonra boyutu değiştirilemez, ArrayList'in değiştirilir.
- Array class değildir, ArrayList classtır.
- Array, elementlere erişmek için metod kullanmaz, ArrayList kullanır.
- Array primitive data tipleri ve objeleri tutar, ArrayList sadece obje tutar.
3 Şubat 2017 Cuma
Array
Create array
int [] shoeSizeAvailable = new int [3];
Inıtialize elements in an array
shoeSizeAvailable [0] = 5;
shoeSizeAvailable [1] = 3;
shoeSizeAvailable [2] = 7;
Access elemets in an array
shoesSizesAvailable[0];
shoesSizesAvailable[1];
shoesSizesAvailable[2];
SORU
int [] shoeSizeAvailable = new int [3];
Inıtialize elements in an array
shoeSizeAvailable [0] = 5;
shoeSizeAvailable [1] = 3;
shoeSizeAvailable [2] = 7;
Access elemets in an array
shoesSizesAvailable[0];
shoesSizesAvailable[1];
shoesSizesAvailable[2];
SORU
int[] soccerTeam = new int[11]; | |
soccerTeam[0] = 5; | |
soccerTeam[10] = 1; | |
soccerTeam[4] = 23; | |
soccerTeam[1] = 10; |
0 1 2 3 4 5 6 7 8 9 10
5 10 [] [] 2 [] [] [] [] [] 1
Log.v ("Log of the Numbers Activity", "Dizi indexi [0]: " + words [0]);
String
String aslında bir data type değil, bir obje tipidir. O nedenle declaration yaparken ilk s harfi büyük olur.
String welcomeText gibi.
String welcomeText gibi.
View.OnClickListener
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Set the content of the activity to use the activity_main.xml layout file setContentView(R.layout.activity_main); TextView numbers = (TextView) findViewById(R.id.numbers); TextView family = (TextView) findViewById(R.id.family); TextView colours = (TextView) findViewById(R.id.colors); TextView phrases = (TextView) findViewById(R.id.phrases); numbers.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent numbersIntent = new Intent(MainActivity.this, NumbersActivity.class); startActivity (numbersIntent); } });
}
2 Şubat 2017 Perşembe
1 Şubat 2017 Çarşamba
AndroidManifest.Xml File
app / manifests / AndroidManifests.xml
Her aplikasyonun olmazsa olmazıdır. Proje oluşturulduğunda otomatik oluşturulur.
Table of contents of your app.
Her aplikasyonun olmazsa olmazıdır. Proje oluşturulduğunda otomatik oluşturulur.
Table of contents of your app.
Plugin is too old.
Daha önce hazırlanmış bir projeyi import ederken bu hatayı alabilirsiniz.
Bu hatanın hemen altındaki fix linkiyle bu sorun çözülüyor.
Bu hatanın hemen altındaki fix linkiyle bu sorun çözülüyor.
31 Ocak 2017 Salı
Importing a Project
Android stüdyo ana sayfasında ımport diyerek daha önce hazırlanmış bir projeyi yükleyebiliyoruz.
Biraz uzun sürüyor.
Biraz uzun sürüyor.
Ensure that you have the latest
extras
(Android Studio library, Google Repository, etc) from the Android SDK Manager installed.
Ensure that you have all the required SDKs installed from the Android SDK Manager. For this course you will need SDK 15 through SDK 23.
Storage Options
https://developer.android.com/guide/topics/data/data-storage.html?utm_source=udacity&utm_medium=course&utm_campaign=android_basics
30 Ocak 2017 Pazartesi
Volley
https://developer.android.com/training/volley/index.html?utm_source=udacity&utm_medium=course&utm_campaign=android_basics
Bu sayfada konuyu anlatan bi de ders var.
Bu sayfada konuyu anlatan bi de ders var.
Creating Lists and Cards
https://developer.android.com/training/material/lists-cards.html?utm_source=udacity&utm_medium=course&utm_campaign=android_basics#RecyclerView
Supporting Tablets and Handsets
https://developer.android.com/guide/practices/tablets-and-handsets.html?utm_source=udacity&utm_medium=course&utm_campaign=android_basics#Fragments
xliff (Localization)
Mark message parts that should not be translated
Often strings contain text that shouldn’t be translated to other languages. Common examples might be a piece of code, a placeholder for a value, a special symbol, or a name. As you prepare your strings for translation, look for and mark text that should remain as-is, without translation, so that translators don’t change it.
To mark text that should not be translated, use an
<xliff:g>
placeholder tag. Here's an example tag that ensures the text "%1$s" will not be changed during translation (otherwise it could break the message):<string name="countdown"> <xliff:g id="time" example="5 days>%1$s</xliff:g>until holiday</string>
When you declare a placeholder tag, always add an id attribute that explains what the placeholder is for. If your apps will later replace the placeholder value, be sure to provide an example attribute to clarify the expected use.
Here are some more examples of placeholder tags:
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <!-- Example placeholder for a special unicode symbol --> <string name="star_rating">Check out our 5 <xliff:g id="star">\u2605</xliff:g> </string> <!-- Example placeholder for a for a URL --> <string name="app_homeurl"> Visit us at <xliff:g id="application_homepage">http://my/app/home.html</xliff:g> </string> <!-- Example placeholder for a name --> <string name="prod_name"> Learn more at <xliff:g id="prod_gamegroup">Game Group</xliff:g> </string> <!-- Example placeholder for a literal --> <string name="promo_message"> Please use the "<xliff:g id="promotion_code">ABCDEFG</xliff:g>” to get a discount. </string> ... </resources>
Localization
Önce telefonun dil ayarlarından hangi dile uygun yapmak istiyorsak o dili seçiyoruz.
app / src / main / res / values / strings.xml
app / src / main / res / values-es / strings.xml
app / src / main / res / values-fr / strings.xml
ISO 639-1
EXAMPLE:
XML file saved at
app / src / main / res / values / strings.xml
app / src / main / res / values-es / strings.xml
app / src / main / res / values-fr / strings.xml
ISO 639-1
res/values/strings.xml
:<?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">Hello!</string> </resources>
This layout XML applies a string to a View:
<TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" />
This application code retrieves a string:
String string = getString
(R.string.hello);
Common Intents
https://developer.android.com/guide/components/intents-common.html
Üstteki link, sık kullanılan intent'leri içeriyor.
Aşağıdaki örnek Google Maps'te verilen koordinatı açıyor.
if kısmı, bu komutu çalıştıracak aplikasyon olup olmadığına bakıyor. Eğer uygun aplikasyon yoksa ve biz start komutunu verirsek uygulama patlıyor.
Üstteki link, sık kullanılan intent'leri içeriyor.
Aşağıdaki örnek Google Maps'te verilen koordinatı açıyor.
if kısmı, bu komutu çalıştıracak aplikasyon olup olmadığına bakıyor. Eğer uygun aplikasyon yoksa ve biz start komutunu verirsek uygulama patlıyor.
Intent intent = new Intent (Intent.ACTION_VIEW);intent.setData(Uri.parse("geo:47.6, -122.3"));if (intent.resolveActivity(getPackageManager()) != null) { startActivity (intent);}
29 Ocak 2017 Pazar
Equality, Relational, and Conditional Operators
https://docs.oracle.com/javase/tutorial/java/nutsandbolts/op2.html
Bilindik opeatörlerin dışında bir Objenin, hangi objeden türediğini sorgulamak için instanceOf kelimesi de bir operatördür.
Bilindik opeatörlerin dışında bir Objenin, hangi objeden türediğini sorgulamak için instanceOf kelimesi de bir operatördür.
28 Ocak 2017 Cumartesi
27 Ocak 2017 Cuma
Primitive Data Types
Java programlama dilinde değişkenler kullanılmadan önce tanımlanmalıdır.
https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html
26 Ocak 2017 Perşembe
Logs
Another skill you will need for this exercise is the ability write to the Android Logs. More information can be found here, but essentially you write a Java statement like this in your code:
We’ve used Log.i() here which stands for an "information" level log. You have these other options as well:
- e(String, String) (error)
- w(String, String) (warning)
- i(String, String) (information)
- d(String, String) (debug)
- v(String, String) (verbose)
TextView içindeki değeri alıp, Log'a yazıyoruz.
<TextView android:id="@+id/menu_item_1"
public void printToLogs(View view) { // Find first menu item TextView and print the text to the logs TextView menuItem1 = (TextView) findViewById(R.id.menu_item_1); String input1 = menuItem1.getText().toString(); Log.i("EnterpriseActivity.java", input1);
25 Ocak 2017 Çarşamba
Getter and Setter Methods Review
Getter and Setter Methods Review
You’ve been using methods such as
setText
and setImageResource
. These are called setter methods because they are meant to modify or manipulate one value of a view (such as the text or image that it stores). Conventionally they start with the word "set".
There’s also a category of methods called getter methods, whose sole purpose is to "get" one value of a view, such as getting the current text of a view. Conventionally they start with the word "get". We’ll be using some getter methods in this next exercise.
21 Ocak 2017 Cumartesi
Resources
Android Strudio içinde, soldan
içinde bulunur.
Project / app / src / res
içinde bulunur.
Bir android uygulaması Resources ve Java Code'lardan oluşur.
Örneğin MainActivity.java dosyası Java dosyalarına bir örnektir.
Resources ise üstte göründüğü gibi imaj, xml, text, renk kodları gibi elemanlardan oluşur.
Returning Value from a Method
https://docs.oracle.com/javase/tutorial/java/javaOO/returnvalue.html
Bir fonksiyonda iki return olamaz.
Metod signature'daki return type ile döndürdüğümüz return type birbirini tutmalı.
Return type yoksa void kullanmalıyız.
return; deyip bırakırsak fonksiyonu sonlandırdığımız anlamına gelir.
Bir fonksiyonda iki return olamaz.
Metod signature'daki return type ile döndürdüğümüz return type birbirini tutmalı.
Return type yoksa void kullanmalıyız.
return; deyip bırakırsak fonksiyonu sonlandırdığımız anlamına gelir.
19 Ocak 2017 Perşembe
@param
Metod tanımlarken, metodun üzerinde input parametrelerinin açıklamasını yazmak iyi olur.
/** * * @param message is the message to be shown when we press the order button. */ private void displayMessage(String message) { TextView priceTextView = (TextView) findViewById(R.id.price_text_view); priceTextView.setText(message); } }
Method Signature
Tipik bir metod tanımlama:
public double calculateAnswer(double wingSpan, int numberOfEngines, double length, double grossTons) { //do the calculation here }
Metod tanımlama için gerekli olanlar, metodun dönüş tipi, adı, bir çift parantez ve süslü parantezler arasında body.
Daha genel olarak metod tanımlamaları sırasıyla 6 komponente sahiptir.
1- Modifier: public, private.
2- Return Type: metod tarafından geri döndürülen değer tipi ya da void diyerek metodtan bir değer geri dönmediğini bildiriyoruz.
3- Metodun adı.
4- Parantez içinde parametre listesi, virgülle ayrılır ve önünde kendi data tipi bulunur. Eğer parametre yoksa boş parantez olur.
5- İstisna listesi.
6- Süslü parantezler içinde metod gövdesi. Lokal değişkenler burada tanımlanır.
Modifiers, return types ve parametreler daha sonra anlatılacak. İstisnalar daha sonraki derste anlatılacak.
Overloading Methods
Bu konuyu ben de ilk defa görüyorum. Aynı isimle birden fazla metod tanımlayabiliriz fakat her birinin kabul ettiği değişken ve tipi farklı olmalı. Fakat aynı parametre ismi ve data tipine sahip ikinci
bir metod tanımlayamayız.
public class DataArtist { ... public void draw(String s) { ... } public void draw(int i) { ... } public void draw(double f) { ... } public void draw(int i, double f) { ... } }
17 Ocak 2017 Salı
Lesson 3A Kahve Sipariş Uygulaması
XML
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.ersanaskin.notopening.MainActivity" android:orientation="vertical"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TOPPINGS" /> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="15dp"> <CheckBox android:text="CheckBox" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/checkBox" android:layout_weight="1" android:layout_marginRight="30dp"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Whipped Cream" /> </LinearLayout> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="QUANTITY" android:layout_marginTop="20dp"/> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="15dp"> <Button android:layout_width="50dp" android:layout_height="wrap_content" android:text="-" android:onClick="decreaseQuantity"/> <TextView android:id="@+id/quantity_text_view" android:layout_width="50dp" android:layout_height="wrap_content" android:text="0" android:textAlignment="center"/> <Button android:layout_width="50dp" android:layout_height="wrap_content" android:text="+" android:onClick="increaseQuantity"/> </LinearLayout> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="ORDER SUMMARY" android:layout_marginTop="15dp"/> <TextView android:id="@+id/order_summary_text_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="15dp"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="ORDER" android:onClick="displayMessage"/></LinearLayout>
JAVA
package com.example.ersanaskin.notopening; import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.TextView; public class MainActivity extends AppCompatActivity { int quantity = 0; int coffeePrice = 10; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void increaseQuantity(View view){ quantity ++; display(quantity); } public void decreaseQuantity(View view){ quantity --; display(quantity); } private void display(int number) { TextView quantityTextView = (TextView) findViewById(R.id.quantity_text_view); quantityTextView.setText("" + number); } public void displayMessage(View v) { String message = "Hello Ersan. You bought " + quantity + " coffee. Please pay $" + quantity * coffeePrice + "."; TextView orderSummaryTextView = (TextView) findViewById(R.id.order_summary_text_view); orderSummaryTextView.setText(message); } }
16 Ocak 2017 Pazartesi
Ekrandaki uygulamayı çalıştıran Java kodu aşağıda. Oldukça basit, butona basınca submitOrder fonksiyonunu çağırıyor. submitOrder'da diğer 2 fonksiyonu tetikliyor.
package com.example.ersanaskin.justjava;
/** * Add your package below. Package name can be found in the project's AndroidManifest.xml file.
* This is the package name our example uses: * * package com.example.android.justjava; */
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.TextView;
import java.text.NumberFormat;
/** * This app displays an order form to order coffee. */
public class MainActivity extends AppCompatActivity {
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
/** * This method is called when the order button is clicked. */
public void submitOrder(View view) {
display(2 * 2);
displayPrice(2 * 5);
}
/** * This method displays the given quantity value on the screen. */
private void display(int number) {
TextView quantityTextView = (TextView) findViewById(R.id.quantity_text_view);
quantityTextView.setText("" + number);
}
private void displayPrice(int number) {
TextView priceTextView = (TextView) findViewById(R.id.price_text_view);
priceTextView.setText(NumberFormat.getCurrencyInstance().format(number));
}
15 Ocak 2017 Pazar
14 Ocak 2017 Cumartesi
Android Experts
https://developers.google.com/experts/all/technology/android?utm_source=udacity&utm_medium=course&utm_campaign=android_basics
12 Ocak 2017 Perşembe
Escape Characters
https://docs.oracle.com/javase/tutorial/java/data/characters.html
Escape Sequence | Description |
---|---|
\t | Insert a tab in the text at this point. |
\b | Insert a backspace in the text at this point. |
\n | Insert a newline in the text at this point. |
\r | Insert a carriage return in the text at this point. |
\f | Insert a formfeed in the text at this point. |
\' | Insert a single quote character in the text at this point. |
\" | Insert a double quote character in the text at this point. |
\\ | Insert a backslash character in the text at this point. |
Kaydol:
Kayıtlar (Atom)