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.
Kaydol:
Kayıtlar (Atom)