আমার একটি মেনুতেম সহ অ্যাকশন বার রয়েছে। আমি কীভাবে সেই মেনু আইটেমটি গোপন / প্রদর্শন করতে পারি?
এটি আমি যা করার চেষ্টা করছি:
MenuItem item = (MenuItem) findViewById(R.id.addAction);
item.setVisible(false);
this.invalidateOptionsMenu();
আমার একটি মেনুতেম সহ অ্যাকশন বার রয়েছে। আমি কীভাবে সেই মেনু আইটেমটি গোপন / প্রদর্শন করতে পারি?
এটি আমি যা করার চেষ্টা করছি:
MenuItem item = (MenuItem) findViewById(R.id.addAction);
item.setVisible(false);
this.invalidateOptionsMenu();
উত্তর:
এ MenuItem
জাতীয় আইটেমটির দিকে ইঙ্গিত করুন, setVisible
এর দৃশ্যমানতাটি সামঞ্জস্য করতে এটিতে কল করুন এবং তারপরে invalidateOptionsMenu()
আপনার ক্রিয়াকলাপে কল করুন যাতে অ্যাকশনবার মেনু সেই অনুসারে সামঞ্জস্য হয়।
আপডেট: এ MenuItem
কোনও নিয়মিত ভিউ নয় যা আপনার বিন্যাসের অংশ part এটি বিশেষ কিছু, সম্পূর্ণ আলাদা। আপনার কোডটি এর null
জন্য ফিরে আসে item
এবং এটি ক্র্যাশ ঘটায়। পরিবর্তে আপনার যা প্রয়োজন তা হ'ল:
MenuItem item = menu.findItem(R.id.addAction);
এখানে যে ক্রমটি আপনাকে কল করা উচিত তা এখানে: প্রথম কল invalidateOptionsMenu()
এবং তারপরে ভিতরে onCreateOptionsMenu(Menu)
মেনুআইটেমের জন্য একটি রেফারেন্স পান ( menu.findItem()
কল setVisible()
করে ) এবং কল করুন
MenuItem
হতে পারে । আপনার কোড এবং ক্র্যাশ লগ উভয়ই না দেখে আমরা কখনই জানতে পারি না। null
getItem
findItem
onCreateOptionsMenu
এবং সেই সময়ে আইটেমটির দৃশ্যমানতা সেট করুন। অথবা রেফারেন্সটি যতক্ষণ না স্থির করে নিন যতক্ষণ না এটি স্থির করা উচিত কি না।
invalidateOptionsMenu()
এবং তারপরে ভিতরে ( কল করে ) onCreateOptionsMenu(Menu)
একটি রেফারেন্স পান এবং এটি কল করে। উত্তর suhas_sm দ্বারা এবং P1r4nh4 দ্বারা সঠিক পদ্ধতির উপস্থাপন। MenuItem
menu.findItem()
setVisible()
এই প্রশ্নের একটি সংযোজন পেয়েছেন:
আপনি যদি যেতে যেতে আপনার মেনু আইটেমগুলির দৃশ্যমানতা পরিবর্তন করতে চান তবে আপনার মেনুটি invalidateOptionsMenu()
আড়াল করতে এবং আপনার ওভাররাইড onCreateOptionsMenu(...)
পদ্ধতিতে আইটেমগুলি কল করতে এবং আড়াল করতে চান তা মনে রাখতে আপনাকে কেবল আপনার ক্রিয়াকলাপে সদস্যের পরিবর্তনশীল সেট করতে হবে ।
//anywhere in your code
...
mState = HIDE_MENU; // setting state
invalidateOptionsMenu(); // now onCreateOptionsMenu(...) is called again
...
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
// inflate menu from xml
MenuInflater inflater = getSupportMenuInflater();
inflater.inflate(R.menu.settings, menu);
if (mState == HIDE_MENU)
{
for (int i = 0; i < menu.size(); i++)
menu.getItem(i).setVisible(false);
}
}
আমার উদাহরণে আমি সমস্ত আইটেম লুকিয়ে রেখেছি।
if (HIDE_MENU) { return false; } else { getSupportMenuInflater().inflate(R.menu.menu_settings, menu); return true; }
ডক্সটি বলে: "মেনুটি প্রদর্শিত হওয়ার জন্য আপনাকে অবশ্যই সত্যটি ফিরতে হবে; যদি আপনি মিথ্যা ফেরান তবে এটি প্রদর্শিত হবে না"।
onPrepareOptionsMenu()
এর পরিবর্তে প্রদর্শন / আড়াল করার জন্য ব্যবহার করা উচিত onCreateOptionsMenu()
কারণ এটি একবার ব্যবহার করা হয় যদি আপনি মেনু আইটেমগুলির আরম্ভের পরে পরিবর্তন করতে চান তবে এটি কার্যকর নয়। সুতরাং অনক্রিটে স্ফীত করুন, তবে অনপ্রেরে প্রদর্শন করুন / লুকান।
হ্যাঁ.
invalidateOptionsMenu()
আপনি বিকল্পটি আড়াল করতে চাইলে কল করুন । এই কল করবেonCreateOptionsMenu()
।onCreateOptionsMenu()
, পতাকা / শর্তটি পরীক্ষা করুন এবং এটি নীচের উপায়ে দেখান বা আড়াল করুন:MenuItem item = menu.findItem(R.id.menu_Done); if (flag/condition)) { item.setVisible(false); } else { }
invalidateOptionsMenu
পরিবর্তে হওয়া উচিত নয় invalidateOptions
?
onCreateOptionsMenu
আপনি এই কল করতে পারেন:
MenuItem item = menu.findItem(R.id.my_item);
item.setVisible(false);
হালনাগাদ:
নিশ্চিত করুন যে আপনার কোড নিয়ে এসেছে নেই করুন null
জন্য item
অথবা এটি আবেদন বিপর্যস্ত হতে পারে।
আমি আরও কিছু প্রসঙ্গে একটি উত্তর খুঁজছিলাম। এখন যেহেতু আমি এটি সন্ধান করেছি, আমি সেই উত্তরটি যুক্ত করব।
ডিফল্টরূপে ভাগ বোতামটি গোপন করা হবে, যেমন সেট করা হয়েছে android:visible="false"
।
main_menu.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<!-- hide share button by default -->
<item
android:id="@+id/menu_action_share"
android:icon="@drawable/ic_share_white_24dp"
android:visible="false"
android:title="Share"
app:showAsAction="always"/>
<item
android:id="@+id/menu_action_settings"
android:icon="@drawable/ic_settings_white_24dp"
android:title="Setting"
app:showAsAction="ifRoom"/>
</menu>
তবে শেয়ারের বোতামটি কিছু শর্তের ভিত্তিতে optionচ্ছিকভাবে প্রদর্শিত হতে পারে।
MainActivity.java
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main_menu, menu);
MenuItem shareItem = menu.findItem(R.id.menu_action_share);
// show the button when some condition is true
if (someCondition) {
shareItem.setVisible(true);
}
return true;
}
invalidateOptionsMenu()
মেনুটি রিফ্রেশ করতে ব্যবহার করুন।
আমার জন্য কাজ করেনি। onPrepareOptionsMenu
অদৃশ্য আইটেম সেট করতে আমাকে স্পষ্টভাবে ব্যবহার করতে হয়েছিল।
সুতরাং onCreateOptionsMenu
মেনু তৈরি করতে এবং onPrepareOptionsMenu
দৃশ্যমানতা পরিবর্তন করতে ব্যবহার করুন etc.
onPrepareOptionsMenu
এই ধরণের অপারেশন করার জন্য সঠিক জায়গা বলে মনে হচ্ছে: "স্ক্রিনের মানক বিকল্পগুলির মেনুটি প্রদর্শিত হতে প্রস্তুত করুন the মেনুটি প্রদর্শিত হওয়ার আগেই একে ডাকা হয়, প্রতিবার এটি প্রদর্শিত হয় "আপনি এই পদ্ধতিটি আইটেমগুলিকে দক্ষ / অক্ষম করতে বা অন্যথায় বিষয়বস্তুগুলিকে গতিশীল পরিবর্তন করতে ব্যবহার করতে পারেন।"
invalidateOptionsMenu()
মেনুটি রিফ্রেশ করতে ব্যবহার করুন।
প্রাথমিকভাবে মেনু আইটেমের দৃশ্যমানতাটিকে মেনু বিন্যাসের ফাইলটিতে মিথ্যা হিসাবে সেট করুন:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:visible="false"
android:id="@+id/action_do_something"
android:title="@string/txt_do_something"
app:showAsAction="always|withText"
android:icon="@drawable/ic_done"/>
</menu>
তারপরে আপনি মেনুটি স্ফূরণ করার পরে মেনু আইটেমটির দৃশ্যমানতাটি আপনার onCreateOptionsMenu () এ মিথ্যাতে সেট করতে পারেন।
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(menu,R.menu.menu);
MenuItem item = menu.findItem(R.id.menuItemId);
if (item != null){
item.setVisible(false);
}
}
এটা চেষ্টা কর:
MenuItem myitem = menu.findItem(R.id.my_item);
myitem.setVisible(false);
এটি আমার জন্য ক্রিয়াকলাপ এবং খণ্ডন উভয় থেকেই কাজ করেছিল
@Override
public void onPrepareOptionsMenu(Menu menu) {
super.onPrepareOptionsMenu(menu);
if (menu.findItem(R.id.action_messages) != null)
menu.findItem(R.id.action_messages).setVisible(false);
}
P1r4nh4 উত্তরটি ঠিক কাজ করে, আমি কেবল এটি বুলিয়ান পতাকা ব্যবহার করে সরল করেছিলাম:
public int mState = 0; //at the top of the code
//where you want to trigger the hide action
mState = 1; // to hide or mState = 0; to show
invalidateOptionsMenu(); // now onCreateOptionsMenu(...) is called again
...
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
// inflate menu from xml
MenuInflater inflater = getSupportMenuInflater();
inflater.inflate(R.menu.settings, menu);
if (mState == 1) //1 is true, 0 is false
{
//hide only option 2
menu.getItem(2).setVisible(false);
}
}
0
এবং 1
এটি "বুলিয়ান পতাকা" নয়, এটি সিউডো-বুলিয়ান। তদ্ব্যতীত, এখানে একটি আসল বুলিয়ান ব্যবহার করার কোনও কারণ নেই।
অ্যান্ড্রয়েড বিকাশকারী অফিসিয়াল সাইট অনুসারে, রানটাইম এ মেনু আইটেম বা আইকন, দৃশ্যমানতা ... ইত্যাদি পরিবর্তনের জন্য অনক্রিয়েটঅপশনমেনু (মেনু মেনু) পুনরুদ্ধার করা হয় না।
সিস্টেমটি ক্রিয়েটঅপশনস মেনু () এ কল করার পরে, এটি আপনি যে মেনুটি স্থাপন করেন তার একটি উদাহরণ ধরে রাখে এবং যদি কোনও কারণে মেনুটি অকার্যকর না করা হয় তবে ক্রেইটঅপশনস মেনু () কে আর কল করবে না। তবে আপনার কেবলমাত্র প্রাথমিক মেনু অবস্থা তৈরি করতে এবং ক্রিয়াকলাপের জীবনচক্রের সময় পরিবর্তন না করার জন্য onCreateOptionsMenu () ব্যবহার করা উচিত।
আপনি যদি ক্রিয়াকলাপের জীবনচক্র চলাকালীন ঘটে যাওয়া ইভেন্টগুলির ভিত্তিতে অপশন মেনুটি পরিবর্তন করতে চান তবে আপনি অনপ্রিপার্পশনমেনু () পদ্ধতিতে এটি করতে পারেন। এই পদ্ধতিটি আপনাকে মেনু অবজেক্টটি বর্তমানে উপস্থিত হিসাবে পাস করে যাতে আপনি এটি সংশোধন করতে পারেন, যেমন আইটেমগুলি যুক্ত করুন, অপসারণ করুন বা অক্ষম করুন। (টুকরাগুলি একটি প্রিপার্পিয়ারঅপশনমেনু () কলব্যাকও সরবরাহ করে)) - অ্যান্ড্রয়েড ডেভেলপার অফিসিয়াল সাইট -
রিকোমেন্ডেড হিসাবে আপনি এই অনপশন আইটেমসিলিগ্রেটেড (মেনু আইটেম আইটেম) পদ্ধতির ট্র্যাক ব্যবহারকারী ইনপুটগুলি ব্যবহার করতে পারেন ।
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.edit) {
Intent intent = new Intent(this, ExampleActivity.class);
intent.putExtra(BUNDLE_KEY, mConnection);
startActivityForResult(intent, PICK_CHANGE_REQUEST);
return true;
} else if (id == R.id.delete) {
showDialog(this);
return true;
}
return super.onOptionsItemSelected(item);
}
রান চলাকালীন আপনার যদি মেনু আইটেমগুলি পরিবর্তন করতে হয় তবে এগুলি পরিবর্তন করতে আপনি প্রিপার্পেপশনমেনু (মেনু মেনু) ব্যবহার করতে পারেন
@Override
public boolean onPrepareOptionsMenu(Menu menu){
if (Utils.checkNetworkStatus(ExampleActivity.this)) {
menu.findItem(R.id.edit).setVisible(true);
menu.findItem(R.id.delete).setVisible(true);
}else {
menu.findItem(R.id.edit).setVisible(false);
menu.findItem(R.id.delete).setVisible(false);
}
return true;
}
setVisible(false)
সর্বদা দৃশ্যমান আইটেমটির জন্য থাকি তখন আমি তিনটি বিন্দুর (মেনু নিজেই) ক্লিক না করা অবধি অদৃশ্য হয়ে যায় না। যদি আমি ব্যবহার invalidateOptionsMenu()
মধ্যে onPrepareOptionsMenu
আইটেম অবিলম্বে নিজেই পুনঃসংগঠিত, কিন্তু তারা তাদের কাজ আলগা (যদি আমি কোনো আইটেম উপর ক্লিক করুন, এটা কিছুই না)।
একটি ভেরিয়েবলের জন্য একটি মান সেট করুন এবং অকার্যকর কল করুন অধ্যায়গুলি মেনু ();
উদাহরণ স্বরূপ
selectedid=arg2;
invalidateOptionsMenu();
public boolean onPrepareOptionsMenu(Menu menu) {
if(selectedid==1){
menu.findItem(R.id.action_setting).setVisible(false);
menu.findItem(R.id.action_s2).setVisible(false);
menu.findItem(R.id.action_s3).setVisible(false);
}
else{
if(selectedid==2){
menu.findItem(R.id.action_search).setVisible(false);
menu.findItem(R.id.action_s4).setVisible(false);
menu.findItem(R.id.action_s5).setVisible(false);
}
}
return super.onPrepareOptionsMenu(menu);
}
setVisible(false)
সর্বদা দৃশ্যমান আইটেমটির জন্য থাকি তখন আমি তিনটি বিন্দুর (মেনু নিজেই) ক্লিক না করা অবধি অদৃশ্য হয়ে যায় না। যদি আমি ব্যবহার invalidateOptionsMenu()
মধ্যে onPrepareOptionsMenu
আইটেম অবিলম্বে নিজেই পুনঃসংগঠিত, কিন্তু তারা তাদের কাজ আলগা (যদি আমি কোনো আইটেম উপর ক্লিক করুন, এটা কিছুই না)।
মেনুতে সমস্ত আইটেমের দৃশ্যমানতা সেট করার মাধ্যমে অ্যাপবার মেনু বা ওভারফ্লো মেনু স্বয়ংক্রিয়ভাবে লুকানো হবে
উদাহরণ
private Menu menu_change_language;
...
...
@Override
public boolean onCreateOptionsMenu(Menu menu) {
...
...
menu_change_language = menu;
menu_change_language.findItem(R.id.menu_change_language)
.setVisible(true);
return super.onCreateOptionsMenu(menu);
}
অন্যান্য খণ্ডে যাওয়ার আগে বেলো কোড ব্যবহার করুন:
if(menu_change_language != null){
menu_change_language.findItem(R.id.menu_change_language)
.setVisible(false);
}
https://stackoverflow.com/a/21215280/466363 - লুক আল্টার্নো এবং সুফিয়ান দ্বারা উত্তর
।
private Menu mMenu;
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.track_fragment, menu);
mMenu = menu;
}
...
private void someMethod() {
...
if (mMenu != null) {
MenuItem item = mMenu.findItem(R.id.new_track);
if (item != null) {
item.setVisible(false);
ActivityCompat.invalidateOptionsMenu(this.getActivity());
}
}
...
}
ক্রিয়াকলাপম্পট.অনুয়েডিয়েটপশনস মেনু () প্রিপার্পেপশনমেনু () এ কলব্যাক করে না; এটি কেবল মেনুটি সরাসরি আপডেট করে।
আমার সামুদে (), ক্রেইটঅপশনস মেনু () এর আগেও বেশ কয়েকটি জায়গা থেকে কল করা উচিত, তাই আমাকে অবশ্যই এমেনু পরীক্ষা করতে হবে! = নাল।
যদি আপনি উপরের উত্তরের মতো সব কিছু করেন তবে একটি মেনু আইটেমটি এখনও দৃশ্যমান হয়, আপনি অনন্য সংস্থানটির উল্লেখ করেছেন কিনা তা পরীক্ষা করে দেখুন। উদাহরণস্বরূপ, onCreateOptionsMenu বা onPrepareOptionsMenu এ
@Override
public void onPrepareOptionsMenu(Menu menu) {
super.onPrepareOptionsMenu(menu);
MenuItem menuOpen = menu.findItem(R.id.menu_open);
menuOpen.setVisible(false);
}
Ctrl + ক্লিক করুন.আর.ইড.মেনু_পেন এবং এটি কেবল একটি মেনু ফাইলে বিদ্যমান। যদি এই সংস্থানটি ইতিমধ্যে যে কোনও জায়গায় ব্যবহার করা হয় এবং কোনও ক্রিয়াকলাপে লোড করা হয় তবে এটি সেখানে লুকানোর চেষ্টা করবে।
শুধুমাত্র একটি কমান্ড সহ একটি মেনুতে সমস্ত আইটেম আড়াল করার সর্বোত্তম উপায় হ'ল আপনার মেনুতে এক্সএমএলতে "গ্রুপ" ব্যবহার করা। একই গ্রুপের মধ্যে আপনার ওভারফ্লো মেনুতে থাকা সমস্ত মেনু আইটেমগুলি কেবল যুক্ত করুন।
এই উদাহরণে আমাদের কাছে দুটি মেনু আইটেম রয়েছে যা সর্বদা প্রদর্শিত হবে (নিয়মিত আইটেম এবং অনুসন্ধান) এবং তিনটি ওভারফ্লো আইটেম:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/someItemNotToHide1"
android:title="ITEM"
app:showAsAction="always" />
<item
android:id="@+id/someItemNotToHide2"
android:icon="@android:drawable/ic_menu_search"
app:showAsAction="collapseActionView|ifRoom"
app:actionViewClass="android.support.v7.widget.SearchView"
android:title="Search"/>
<group android:id="@+id/overFlowItemsToHide">
<item android:id="@+id/someID"
android:orderInCategory="1" app:showAsAction="never" />
<item android:id="@+id/someID2"
android:orderInCategory="1" app:showAsAction="never" />
<item android:id="@+id/someID3"
android:orderInCategory="1" app:showAsAction="never" />
</group>
</menu>
তারপরে, আপনার ক্রিয়াকলাপে (onCreateOptionsMenu এ পছন্দনীয়) কমান্ড সেটগ্রুপভিজিবল ব্যবহার করুন সমস্ত মেনু আইটেমের দৃশ্যমানতাটিকে মিথ্যা বা সত্য হিসাবে সেট করতে।
public boolean onCreateOptionsMenu(Menu menu) {
menu.setGroupVisible(R.id.overFlowItems, false); // Or true to be visible
}
আপনি যদি এই কমান্ডটি আপনার ক্রিয়াকলাপের অন্য কোথাও ব্যবহার করতে চান তবে মেনু ক্লাসটি স্থানীয়ভাবে সংরক্ষণ করার বিষয়ে নিশ্চিত হন এবং মেনুটি শূন্য রয়েছে কিনা তা সর্বদা যাচাই করুন, কারণ আপনি ক্রিয়েপশনমেনুর আগে কার্যকর করতে পারেন:
Menu menu;
public boolean onCreateOptionsMenu(Menu menu) {
this.menu = menu;
}
public void hideMenus() {
if (menu != null) menu.setGroupVisible(R.id.overFlowItems, false); // Or true to be visible
}
যারা অ্যাপকম্প্যাট লাইব্রেরি ব্যবহার করছেন তাদের জন্য: আপনার ক্রিয়াকলাপটি যদি অ্যাকশনবার অ্যাক্টিভিটি সাবক্লাস হয় তবে আপনি সমর্থনআইডিয়োশনটিওপশনমেনু () কল করতে পারেন
এখানে দেখা হয়েছে: https://stackoverflow.com/a/19649877/1562524
আমি মনে করি মেনুটির জন্য সদস্য ভেরিয়েবলটি ব্যবহার করা, এটি onCreateOptionsMenu () এ আরম্ভ করুন এবং বিকল্পগুলির মেনুটিকে অকার্যকর করে কেবল পরে সেটভিজিবল () ব্যবহার করুন a
এই কোডটি আমার পক্ষে কাজ করেছিল
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main_menu,menu);
if (Application.sharedPreferences.getInt("type",1) == 2)
{
menuItem = menu.findItem(R.id.menu_travel_orders);
menuItem.setVisible(false);
}
return super.onCreateOptionsMenu(menu);
}
এই পদ্ধতিটি আমার পক্ষে কাজ করেছে:
private Menu thismenu;
if (condition)
{
if(thismenu != null)
{
thismenu.findItem(R.id.menu_save).setVisible(true);
Toast.makeText(ProfileActivity.this,
""+thismenu.findItem(R.id.menu_save).getTitle(),
Toast.LENGTH_SHORT).show();
}else
{
thismenu.findItem(R.id.menu_save).setVisible(false);
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.profile_menu, menu);
thismenu = menu;
return true;
}
আপনি কোনও ক্রিয়াকলাপ থেকে একটি মেনু আইটেম অ্যাক্সেস করার চেষ্টা করছেন, যার সুযোগে অ্যাক্সেস নেই। মেনু আইটেমটি সন্ধানের জন্য কলটি বাতিল হবে , কারণ দৃশ্যটি আপনি যে কার্যকলাপটি বা কলটি দিয়ে যাচ্ছেন না বা সেই বিন্যাসের সাথেই আবদ্ধ নয় ।
মেনু আইটেমগুলিকে " নেভিগেশন বার " এর মতো আইটেমগুলি আবদ্ধ করা হয় যা পরিবর্তিতভাবে সংশ্লিষ্ট ক্রিয়াকলাপের সাথে আবদ্ধ হয়।
সুতরাং ক্রিয়াকলাপে () এ দর্শনগুলি আরম্ভ করুন এবং তারপরে সেই দর্শনগুলি সহ মেনু আইটেমগুলি অ্যাক্সেস করুন।
Navigation navView;
navView = findViewById(R.id.navigationView);
MenuItem item = navView.getMenu().findItem(R.id.item_hosting);
item.setVisible(false);
ব্যবহার invalidateOptionsMenu()
কল করার জন্য onPrepareOptionsMenu(menu: Menu?)
আপনার কেবলমাত্র প্রাথমিক মেনু অবস্থা তৈরি করতে এবং ক্রিয়াকলাপের জীবনচক্রের সময় পরিবর্তন না করার জন্য onCreateOptionsMenu () ব্যবহার করা উচিত ...
যখন কোনও ইভেন্ট দেখা দেয় এবং আপনি একটি মেনু আপডেট সম্পাদন করতে চান, আপনাকে অবশ্যই কম্পিউটারে প্রিপার্পেপশনমেনু () তে কল করার অনুরোধ করতে অবৈধ অপশনমেনু () কল করতে হবে।
অ্যান্ড্রয়েড কোটলিন, অ্যাকশন বারে প্রোগ্রামিকভাবে মেনু আইটেমটির দৃশ্যমানতা লুকান বা সেট করুন।
override fun onCreateOptionsMenu(menu: Menu): Boolean {
val inflater = menuInflater
inflater.inflate(R.menu.main_menu, menu)
val method = menu.findItem(R.id.menu_method)
method.isVisible = false //if want to show set true
return super.onCreateOptionsMenu(menu)
}