Ich habe eine Liste von Colleges zur Anzeige und klicke auf die Fachhochschule, es geht zur Detailseite. Dort gibt es eine Menüleiste mit Benachrichtigung und Favourite_icon
. Hier habe ich die Favourite_icon
und Favourite_icon1
. Wenn die Benutzer die favourite_icon
clcik gespeichert haben, speicherte sie als in dem Server und das Symbol wurde als Favourite_icon1
geändert. Nach einigen Prozessen habe ich das Favourited College besucht. Zu dieser Zeit sollte es die Favourite_icon1
in der Menüleiste anzeigen. Ich habe die folgende Methode versucht, aber nichts ist passiert. Ich habe den Code hinzugefügt, die ichWie man das Menüleisten-Icon anfänglich entsprechend der Server-Antwort einstellt
menu_clg.xml
<?xml version="1.0" encoding="utf-8"?>
<menu
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:appmunu="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".UserDashBoardFragment">
<item
android:id="@+id/action_notify"
android:icon="@drawable/mail_icon"
appmunu:showAsAction="always"
android:title="Notification" />
<item
android:id="@+id/action_favourite"
android:icon="@drawable/icon_selector"
appmunu:showAsAction="always"
android:title="Favourite" />
</menu>
diese Aktivität Code versucht haben
private boolean canAddItem;
@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_clg, menu);
mMenu = menu;
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_notify:
navigatetoNotification();
return true;
case R.id.action_favourite:
if (item.getItemId() == R.id.action_favourite) {
invalidateOptionsMenu();
favouriteClg();
}
}
return super.onOptionsItemSelected(item);
}
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
if (canAddItem) {
menu.getItem(1).setIcon(R.drawable.vijay);
canAddItem = false;
favouriteClg();
} else {
menu.getItem(1).setIcon(R.drawable.favourite_icon);
canAddItem = true;
favouriteClg();
}
return super.onPrepareOptionsMenu(menu);
}
dies der Code für den Check ist wheather das College bereits favorisiert ist oder nicht in onCreate()
Methode
public void chechFavourite() {
new AsyncTask<Void, Void, String>() {
@Override
protected String doInBackground(Void... arg0) {
//method name changed here
//getAllEventFromUser method used for getting all previously send events of current user
return favouriteDelegates.getAllCollegeDetails(userMO, context);
}
@Override
protected void onPostExecute(String collegelists) {
if (collegelists != "null") {
initCollegeMO = gson.fromJson(collegelists, new TypeToken<InitCollegeMO>() {
}.getType());
collegeMOs = initCollegeMO.getCollegeMOs();
for (CollegeMO collegeMO1 : collegeMOs) {
//here the list of college has eceived from server so i checked all the college id with current college id
collegeId = collegeMO1.getCollegeId(); //here collegeMO isthe object which is accessed by parcelable from another activity
if (collegeMO.getCollegeId() == collegeId) {
canAddItem = true;
} else {
canAddItem = false;
}
}
} else {
canAddItem = false;
}
}
}.execute(null, null, null);
}
}
i Bild auf meinem ziehbar habe ich muss überprüfen wheather seine bereits Favorit ist oder nicht, wenn favorisiert ich die favourite_icon1 sonst favourite_icon –
@vijayg einstellen müssen, überprüfen Sie bearbeiten 1 –
, wo ich dieses updateMenuTitles sollte hinzufügen() Methode. in oncreate()? –