保存按钮状态android

问题描述:

我正在制作一个具有书签功能的新闻应用程序。当用户点击书签按钮时,图像被改变并且书签被保存并再次点击以移除书签。但是,当我去其他活动,然后回到主要新闻页面,书签按钮图像再次更改为默认的一个。保存按钮状态android

按钮不能保留状态。

我对触摸也尝试过,但没有成功

newsHolder.bookmark.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       if(!isBookmarked) { 
        isBookmarked = true; 
        newsHolder.bookmark.setBackgroundResource(R.drawable.ic_bookmark); 
        newsObject.setTitle(currentNews.getmTitle()); 
        newsObject.setDescription(currentNews.getmDescription()); 
        newsObject.setDate(currentNews.getmPublishedAt()); 
        newsObject.setPoweredBy(poweredby); 
        newsObject.setImageUrl(currentNews.getmUrlToImage()); 
        newsObject.setSource(currentNews.getmSource()); 
        newsObject.setUrl(currentNews.getmUrl()); 

        newsDbHelper.addNews(newsObject); 
        newsHolder.bookmark.setPressed(true); 
        Toast.makeText(activity, "Bookmark Added", Toast.LENGTH_SHORT).show(); 
       } 
       else 
       { 

        newsHolder.bookmark.setPressed(false); 
        newsDbHelper.deleteBookmark(currentNews.getmUrl()); 
        isBookmarked = false ; 
        newsHolder.bookmark.setBackgroundResource(R.drawable.ic_add_bookmark); 



        Toast.makeText(activity, "Bookmark Removed", Toast.LENGTH_SHORT).show(); 
      } 

你应该保存书签的文章在一些持久性存储偏好设置/ BD /云和检查它书签或不能启动画面时,改变状态根据它的按钮。

+0

我在sqlite数据库 –

+0

保存书签,所以检查数据库的具体ID,如果它在DB使按钮看起来像书签 –

+0

看到当我点击按钮,图像被成功地改变为书签图像,它被保存在数据库。我有一个关于家庭活动的查看器。当我转到其他页面并返回到上一页时,图像被改回以添加书签。 –

你有两个选择来做到这一点,一是将每个项目的书签状态保存在服务器上,默认情况下它应该是假的,点击它,更新值。

但我猜你是通过第三方服务器获得这些消息的,也许是某些新闻频道的RSS提要,你没有从自己的服务器获取这些消息,所以你不能在服务器上进行更改。

我可以向你建议的最佳解决方案是,你应该创建一个本地数据库,在这个数据库中你将保存书签的状态与该特定项目的ID相对应(每个新闻项目必须有一个唯一的ID新闻服务器)。之后,您将从服务器设置新闻,但是您将检查本地数据库中每个项目的书签状态。当用户与书签按钮进行交互时,您将相应地在数据库中对该位置上的特定ID进行更改。