Menu bilan 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
bosamiz:
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:
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
android:id="@+id/header"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="24sp" />
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 bosamiz
Do'stlaringiz bilan baham: |