Menu bilan ko'proq ishlaymiz.
Biz uchta elementdan iborat menyuni aniqladik, ammo xml fayli
tarkibidagi aniqlashlarning o'zi menyuni hali yaratmayapti. Menyuni
namoyish qilish uchun biz Activity sinfidan (
MainActivity.java
faylidan)
foydalanishimiz kerak. Buning uchun onCreateOptionsMenu metodini
bekor qilishingiz kerak. Keling,
MainActivity.java
fayliga o'tamiz va uni
quyidagicha o'zgartiramiz:
package
com.example.android.menyuilova;
import
androidx.appcompat.app.AppCompatActivity;
import
android.os.Bundle;
import
android.view.Menu;
public
class
MainActivity
extends
AppCompatActivity
{
@Override
protected
void
onCreate(Bundle
savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public
boolean
onCreateOptionsMenu(Menu
menu)
{
getMenuInflater().inflate(R.menu.main_menu,
menu);
return
true;
}
}
getMenuInflater metodi MenuInflater ob'ektini oladi va uning inflate()
metodini chaqiradi. Ushbu metod birinchi parametr sifatida xml- da
bizning deklarativ menyuimizni ifodalovchi manbani oladi va uni ikkinchi
parametr sifatida berilgan menu ob'ekti bilan to'ldiradi(bog'laydi).
Ilovani ishga tushiramiz va yuqori o'ng burchakdagi menyu tugmachasini
bosib ko'ramiz:
Menyu elementlarini bosish bilan ishlash.
Agar menyu elementlaridan birini bosgan bo'lsak, unda hech narsa
bo'lmaydi. Amallarni menyuga bog'lash uchun
MainActivity.java
faylida
onOptionsItemSelected-ni bekor qilishimiz kerak.
Tanlangan menyu bandini ekranda ko'rsatish uchun activity_main.xml
fayliga id = header bilan TextView-ni qo'shamiz:
version="1.0"
encoding="utf-8"?>
<
RelativeLayout
xmlns:android
="
http://schemas.android.com/apk/res/android
"
android:layout_width
="
match_parent
"
android:layout_height
="
match_parent
">
<
TextView
android:id
="
@+id/header
"
android:layout_width
="
wrap_content
"
android:layout_height
="
wrap_content
"
android:textSize
="
24sp
"
/>
RelativeLayout
>
Va
MainActivity.java
faylini o'zgartiramiz:
package
com.example.android.menyuilova;
import
androidx.appcompat.app.AppCompatActivity;
import
android.os.Bundle;
import
android.view.Menu;
import
android.view.MenuItem;
import
android.widget.TextView;
public
class
MainActivity
extends
AppCompatActivity
{
@Override
protected
void
onCreate(Bundle
savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public
boolean
onCreateOptionsMenu(Menu
menu)
{
getMenuInflater().inflate(R.menu.main_menu,
menu);
return
true;
}
@Override
public
boolean
onOptionsItemSelected(MenuItem
item)
{
int
id
=
item.getItemId();
TextView
headerView
=
findViewById(R.id.header);
switch
(id)
{
case
R.id.sozlamalar:
headerView.setText("Sozlamalar");
return
true;
case
R.id.ochish:
headerView.setText("Ochish");
return
true;
case
R.id.saqlash:
headerView.setText("Saqlash");
return
true;
}
return
super.onOptionsItemSelected(item);
}
}
Qaysi menyu tanlanganligini aniqlash uchun avval uning identifikatorini
olamiz: int id = item.getItemId() . Keyin biz switch, case -dan
foydalanamiz va kerakli variantni tanlaymiz va tanlovga qarab ma'lum
amallarni bajaramiz - bizni kodda TextView matnini o'rnatadi.
Endi yana bir bor ilovani ishga tushirib ishlashini ko'ramiz:
Sozlamalar-ni bosing
Do'stlaringiz bilan baham: |