2017-06-22 148 views
0

我正在製作一個具有書籤功能的新聞應用程序。當用戶點擊書籤按鈕時,圖像被改變並且書籤被保存並再次點擊以移除書籤。但是,當我去其他活動,然後回到主要新聞頁面,書籤按鈕圖像再次更改爲默認的一個。保存按鈕狀態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(); 
      } 

回答

0

你應該保存書籤的文章在一些持久性存儲偏好設置/ BD /雲和檢查它書籤或不能啓動畫面時,改變狀態根據它的按鈕。

+0

我在sqlite數據庫 –

+0

保存書籤,所以檢查數據庫的具體ID,如果它在DB使按鈕看起來像書籤 –

+0

看到當我點擊按鈕,圖像被成功地改變爲書籤圖像,它被保存在數據庫。我有一個關於家庭活動的查看器。當我轉到其他頁面並返回到上一頁時,圖像被改回以添加書籤。 –

0

你有兩個選擇來做到這一點,一是將每個項目的書籤狀態保存在服務器上,默認情況下它應該是假的,點擊它,更新值。

但我猜你是通過第三方服務器獲得這些消息的,也許是某些新聞頻道的RSS提要,你沒有從自己的服務器獲取這些消息,所以你不能在服務器上進行更改。

我可以向你建議的最佳解決方案是,你應該創建一個本地數據庫,在這個數據庫中你將保存書籤的狀態與該特定項目的ID相對應(每個新聞項目必須有一個唯一的ID新聞服務器)。之後,您將從服務器設置新聞,但是您將檢查本地數據庫中每個項目的書籤狀態。當用戶與書籤按鈕進行交互時,您將相應地在數據庫中對該位置上的特定ID進行更改。