Optıons Menu ve Context Menu :MobileCoder I MobileCoder.NET I Mobil Programlama I Android Programlama I Mobil Geliştiricilerin Buluşma Noktası I www.MobileCoder.Net

Optıons Menu ve Context Menu

31.03.2015 tarihinde Android Programlama kategorisine eklenmiş, 78 views Kişi Okumuş ve 0 Yorum Yapılmış.

Options Menu

 

Öncelikle options menünün ne olduğundan bahsedelim. Options Menü uygulama ayarları, uygulamadan çıkış, uygulamayı silme gibi farklı amaçlara yönelik birçok seçenek içermektedir, yani android uygulamalarının olmazsa olmazlarındandır. Geliştirilen uygulamaların hemen hemen hepsinde bir menü seçeneği mevcuttur. Şimdi Options Menülerin kullanımı bir örnekle anlatılacaktır.

 

Optıons Menü Kullanımı

Menü uygulamamıza res’den layout klasörüne sağ tıklayıp menu.xml adında yeni bir Xml dosyası oluştururak başlıyoruz. Bu uygulamada sadece menuitem  ve metod olarak onCreate, onCreateOptionsMenu ve onOptionsItemSelected metodlarını kullanacağız. Aşağıda bulunan Şekil-1’de menu.xml dosyamızın içinde bulunması gereken kodlamalar yer almaktadır.

 

optıons1

 

Şekil-1

şekil-1 kodlar:

<?xml version=”1.0″ encoding=”utf-8″?>
<linearLayout xmlns:android=”http://schemas.android.com/apk/res/android”
android:orientation=”vertical” android:layout_width=”match_parent”
android:layout_height=”match_parent”>

<menu xmlns:android=”http://schemas.android.com/apk/res/android”>
<item android:id=”@+id/home”

android:title=”home”/>
<item android:id=”@+id/anasayfa”

android:title=”save”/>
<item android:id=”@+id/kaydet”

android:title=”settings”/>
<item android:id=”@+id/ayarlar” />
</menu>

</LinearLayout>

 

 

Burada menü tag i içinde 3 tane  Home, Save, Settings adında item tanımlıyoruz, bu itemlara id’ler veriyoruz. Daha sonra java kodlarımızı yazmak üzere MainActivity.java dosyamıza geçiyoruz. Bu dosyaya yazılması gereken kodlar aşağıda bulunan Şekil-2’de mevcuttur.

 

optıons2

şekil-2

 

şekil-2 kodlar:

public class MainActivity extends ActionBarActivity {

@override
public void onCreate (Bundle savedInstanceState, PersistableBundle persistentState) {
super.onCreate (savedInstanceState, persistentState);
}
@override
public boolean onCreateOptionsMenu (Menu menu) {
MenuInflater inflater=getMenuInflater();
inflater.inflate(layout.menu, menu);
return true;
}
@override
public boolean onOptionsItemSelected(MenuItem item) {

switch (item.getItemId())
case R.id.home:
Toast.makeText(MainActivity.this, “Home”, Toast.LENGHT_SHORT);
case R.id.save:
Toast.makeText(MainActivity.this, “Save”, Toast.LENGHT_SHORT);
case R.id.save:
Toast.makeText(MainActivity.this, “Settings”, Toast.LENGHT_SHORT);
}
return super.onOptionsItemSelected(item);
}

 

Buradaki kodlarda menümüzü onCreateOptionsMenu() metodunda kullanabilmek için menu-inflater oluşturulmuştur. Daha sonra menu.xml dosyamızı inflater’da tanımlanmıştır. Programı çalıştırdığımızda karşımıza çıkacak ekran Şekil-3’te gösterilmiştir.

 

optıons3

 

şekil-3

 

Home seçeneğine tıklandıktan sonra karşımıza gelecek olan ekran ise aşağıdaki Şekil-4’te gösterilmektedir.

 

optıons4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

şekil-4

 

 

 

Context Menu

Bir nesneye uzun süre basıldığında (long-pressed), ekrana yeni bir menü getirilmesini sağlayan view nesnesidir.

Bir örnekle anlatacak olursak, rehberimizde bulunan herhangi bir isme uzun tıkladığımızda silme, düzenleme gibi seçenekleri içeren bir menü açılmasını sağlar.

Context Menu Kullanımı

İlk olarak Context Menu için bir Xml dosyası oluşturmamız gerek. Res’ten Menu ve sonra New Android Xml File adımlarını takip etmeliyiz. Root olarak menü seçeceğiz. Açtığımız Xml dosyasına Şekil-5’te bulunan kodları yazacağız. Burada menümüze item eklemiş oluyoruz. Aynı zamanda bu item’a ulaşmamız için id değeri, ekranda görüntülenecek olan yazının özelliği olarak da title değeri bulunmaktadır.

 

menümain

 

 

 

 

 

 

 

 

 

 

 

 

 

şekil-5

şekil-5 kodlar:

<menu xmlns:android=”http://schemas.android.com/apk/res/android”
xmlns:app=”http://schemas.android.com/apk/res-auto”
xmlns:tools=”http://schemas.android.com/tools” tools:context=”.MainActivity”>
<item android:id=”@+id/action_settings” android:title=”@string/action_settings”
android:orderInCategory=”100″ app:showAsAction=”never” />

<item
android:id=”@+id/item1″
android:title=”Edit”
/>

<item
android:id=”@+id/item2″
android:title=”Share”
/>

<item
android:id=”@+id/item3″
android:title=”Delete”
/>
</menu>

 

 

 

Diğer adımda ActivityMain.xml adında bir Xml dosyası ve içerisinde bir tane ListView oluşturuyoruz. İçerisine Şekil-6’da bulunan kodları yazıyoruz. Burada yükseklik, genişlik, sağ ve sol hizalama gibi bazı görsel ayarları düzenliyoruz.

activitymain

 

 

 

 

 

 

 

 

 

 

şekil-6

 

şekil-6 kodlar:

<?xml version= “1.0” encoding= “utf-8”?>
<RelativeLayout xmlns:android= “http://schemas.android.com/apk/res/android”
android:layout_width=”fill_parent”
android:layout_height=”fill_parent”
android:orientation=”vertical” >

<Button
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:text=”menu için uzun basınuz”
android:id=”@+id/button”
android:layout_gravity=”center_horizontal”
android:layout_marginTop=”44dp”
android:layout_alignParentRight=”true”
android:layout_alignParentEnd=”true” />
</RelativeLayout>

 

 

Bir sonraki adımımızda ise java kodlarımızın yazılması gereken MainActivity.java isimli dosyamızı açıyoruz ve aşağıda bulunan Şekil-7/8’deki kodları yazıyoruz.

 

java1

 

şekil-7

java2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

şekil-8

 

 

şekil-7/8 kodlar:

package com.example.ilayda.myapplication;

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends ActionBarActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

Button button= (Button) findViewById(R.id.button);

registerForContextMenu(button);

}

@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);

getMenuInflater().inflate(R.menu.menu_main,menu);
}

@Override
public boolean onContextItemSelected(MenuItem item) {

switch (item.getItemId()){

case R.id.item1:
Toast.makeText(this, item.toString(),Toast.LENGTH_LONG).show();
break;

case R.id.item2:
Toast.makeText(this, item.toString(),Toast.LENGTH_LONG).show();
break;

case R.id.item3:
Toast.makeText(this, item.toString(),Toast.LENGTH_LONG).show();
break;

}
return super.onContextItemSelected(item);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();

//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}

return super.onOptionsItemSelected(item);
}
}

 

 

Şimdi de string.xml ve style xml dosyamızda  olması gereken kodlara göz atalım. Strings.xml  şekil-9’da  styles.xml şekil-10’da  gösterilmiştir.

strings

 

 

 

 

 

 

 

 

şekil-9

şekil-9 kodlar:

<resources>
<string name=”app_name”>My Application</string>

<string name=”hello_world”>Hello world!</string>
<string name=”action_settings”>Settings</string>
</resources>

style

 

 

 

 

 

 

 

şekil-10

şekil-10 kodlar:

<resources>

<!– Base application theme. –>
<style name=”AppTheme” parent=”Theme.AppCompat.Light.DarkActionBar”>
<!– Customize your theme here. –>
</style>

</resources>

 

 

 

 

Son olarak kodlarımızı çalıştırarak ekran çıktımızı kontrol ediyoruz.

contextekran1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

şekil-11

Butona uzun tıkladığımızda karşımıza çıkan ekran şekil-12’de  gösterilmiştir

contextekran2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

şekil-12

Not:Yapmış olduğumuz context uygulamasında, uzun tıkladığımızda karşımıza çıkan menüde bulunan seçenekler için herhangi bir yönlendirme yapılmamıştır. Yalnızca aynı sayfa üzerinde tıklanan seçeneğin adı yazacaktır.

 

 

 

KAYNAKÇA

Fatih Koçak, “Optiıon Menü Kullanımı”, 25 Ocak 2015,
< http://www.elektrikport.com>  (erişim: 31 Mart 2015).

Turan Arslangil,  “Uygulamamıza Opsiyon Menüsü Oluşturma”, 5 Temmuz 2011, http://www.programlamadefteri.com, (erişim: 31 Mart 2015).

Alican Akkuş,   “Context Menü  ve Dinamik Listview”, 4 Haziran 2014,
<http://alicanakkus.blogspot.com.tr> (erişim: 2 Nisan 2015).

 

 

 

 

Hazırlayan:

Hanife Gürbüz

İlayda Vanlı

İlgili Terimler :
Yazar Hakkında

Yazar : ceren kozhan

Yazar Hakkında :

Yazarın Tüm Yazıları İçin Tıklayınız

Yorumlar

Sitemizde En Çok Okunan İçerikler

ANDROİD TELEFONLARA ROOT ATMA
ANDROİD TELEFONLARA ROOT ATMARoot Ne demek ? Bir android cihazı root etmek telefonun
fragment
ANDROİD FRAGMENT YAPISI VE KULLANIMIFragmentler Activity içerisinde yer alan kullanıcı ara yüzleridir. Fragment
ANDROİD TELEFONLARDA KONFERANS GÖRÜŞME
ANDROİD TELEFONLARDA KONFERANS GÖRÜŞMEANDROİD TELEFONLARDA KONFERANS GÖRÜŞME   Konferans görüşme çok fazla bilinmeyen androidin
Asp.NET’de web servis hazırlama ve Android de kullanimi  Web Servis Nedir ? Web üzerinden HTTP protokolü ile hizmet

Sitemizde En Çok Yorumlanan İçerikler

Rating Bar Kullanımı
Rating Bar KullanımıAndroid’de yıldız şeklinde derecelendirme çubuğu olarak kullanılır. Kullanıcı sürükleme
Android Wear Emülatör Kurulumu
Android Wear Emülatör Kurulumu   Android studio da geliştireceğimiz uygulamaların kontrolunü yapmak için emülatör
Resim Galerisi Oluşturma
Resim Galerisi OluşturmaAndroid Programlama – Resim Galerisi Oluşturma Bu yazıda, bir galeri
SQLite Database Browser Kullanımı
SQLite Database Browser KullanımıSQLite Database Browser Kullanımı Merhaba arkadaşlar, Android uygulamaları geliştirirken uygulama üzerindeki

Son Yapılan Yorumlar

  • Kategoriler

  • Son Yazılar

  • Takvim

    Kasım 2017
    P S Ç P C C P
    « Kas    
     12345
    6789101112
    13141516171819
    20212223242526
    27282930  
  • Etiketler

  • Son Yorumlar

    • Arşivler

    • Meta