如何在应用重新启动时永久设置更改的菜单图标

时间:2016-06-25 20:19:10

标签: android

我已经动态更改了菜单项,但当应用重新启动时,它会更改回默认图标。如何永久更改该图标?

案例R.id.action_bookmark:

                                                           String isBookmark=data.getBookmark();
                                                           if(isBookmark.equals("false")) {
                                                               NewsModel newsModel=items.get(getAdapterPosition());
                                                               newsModel.setBookmark("true");
                                                               ContentValues values = newsModel.getContentValues();
                                                               NewsTable.getInstance().updateEntry(newsModel.getId(),values);
                                                               item.setIcon(R.drawable.star);
                                                               notifyDataSetChanged();
                                                           }
                                                           else{
                                                               NewsModel newsModel=items.get(getAdapterPosition());
                                                               newsModel.setBookmark("false");
                                                               ContentValues values = newsModel.getContentValues();
                                                               NewsTable.getInstance().updateEntry(newsModel.getId(),values);
                                                               item.setIcon(R.drawable.ic_bookmark_white_24dp);
                                                               notifyDataSetChanged();

                                                           }

1 个答案:

答案 0 :(得分:0)

使用SharedPreferences中的onPause()保存该项目的状态。然后,每个onResume()都会读取SharedPreferences

中的值
SharedPreferences sp = getSharedPreferences("program", MODE_PRIVATE);

if (sp.getString("key", "null").equals("item1")) {
    getMenuInflater().inflate(R.menu.menu, menu);
    setOptionIcon(menu.findItem(R.id.action_1),R.drawable.one);
}else{
setOptionIcon(menu.findItem(R.id.action_2),R.drawable.two);
}