Android 使用 SQLite 处理工具栏图标
Android toolbar icon handling with SQLite
我需要提示来设置工具栏菜单。如何在 Intent 打开时自动更改工具栏图标。我正在使用 SQLite 为已添加书签的 post 保存数据。如果用户已将 post 添加为书签,则工具栏图标将更改,否则图标将保持不变。
让我们举个例子,在这张图片中有一个书签按钮(星标),当我点击它时,数据将保存在书签 table 中。之后我关闭了 post。现在,我再次打开已添加书签的 post,但这次它们在工具栏菜单图标中的变化如下:
要执行此功能,数据将从书签 table 加载。
在我的应用程序中无需按住 post 并显示此工具栏。当有人点击 post 时,一个意图被打开。该意图的工具栏将用于此功能。 post 的工具栏是 here : http://i.stack.imgur.com/HWMF5.png 并且当用户点击时选择的图标会改变。提前致谢
找到解决方案: 在 onCreate
之前初始化一个 int
像这样:
int bkmark;
比 onCreate
在初始化工具栏之前从 SQLite
获取数据并检查 post 是否已加入书签。
如果数据可用
bkmark = 1;
其他
bkmark = 0;
在onCreateOptionsMenu
中我使用了两个这样的菜单
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
if(bkmark == 0){//bkmark is not available
getMenuInflater().inflate(R.menu.posts, menu);
}else{//bkmark is available
getMenuInflater().inflate(R.menu.postb, menu);
}
return true;
}
在onOptionsItemSelected
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id==R.id.bkm){
if(bkmark == 1){
//delete data from bookmark table here
item.setIcon(R.drawable.ic_bookmark);//changing the icon
bkmark = 0;
}else{
//insert data in bookmark table here
item.setIcon(R.drawable.ic_bookmarked);//changing the icon
bkmark = 1;
}
}
return super.onOptionsItemSelected(item);
}
如果您正在寻找这样的东西,希望这篇 post 对您有所帮助!
我需要提示来设置工具栏菜单。如何在 Intent 打开时自动更改工具栏图标。我正在使用 SQLite 为已添加书签的 post 保存数据。如果用户已将 post 添加为书签,则工具栏图标将更改,否则图标将保持不变。
让我们举个例子,在这张图片中有一个书签按钮(星标),当我点击它时,数据将保存在书签 table 中。之后我关闭了 post。现在,我再次打开已添加书签的 post,但这次它们在工具栏菜单图标中的变化如下:
要执行此功能,数据将从书签 table 加载。
在我的应用程序中无需按住 post 并显示此工具栏。当有人点击 post 时,一个意图被打开。该意图的工具栏将用于此功能。 post 的工具栏是 here : http://i.stack.imgur.com/HWMF5.png 并且当用户点击时选择的图标会改变。提前致谢
找到解决方案: 在 onCreate
之前初始化一个 int
像这样:
int bkmark;
比 onCreate
在初始化工具栏之前从 SQLite
获取数据并检查 post 是否已加入书签。
如果数据可用
bkmark = 1;
其他
bkmark = 0;
在onCreateOptionsMenu
中我使用了两个这样的菜单
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
if(bkmark == 0){//bkmark is not available
getMenuInflater().inflate(R.menu.posts, menu);
}else{//bkmark is available
getMenuInflater().inflate(R.menu.postb, menu);
}
return true;
}
在onOptionsItemSelected
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id==R.id.bkm){
if(bkmark == 1){
//delete data from bookmark table here
item.setIcon(R.drawable.ic_bookmark);//changing the icon
bkmark = 0;
}else{
//insert data in bookmark table here
item.setIcon(R.drawable.ic_bookmarked);//changing the icon
bkmark = 1;
}
}
return super.onOptionsItemSelected(item);
}
如果您正在寻找这样的东西,希望这篇 post 对您有所帮助!