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.hojiakbar.mymeny;
}
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:
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: