iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 12
0
Software Development

Java 與 Kotlin 入門系列 第 12

[Day12]ListView設計-03

Imgur

int preViewColor, selectColors;
SharedPreferences sharedPreferences =
PreferenceManager.getDefaultSharedPreferences(this);
preViewColor = sharedPreferences.getInt("DEFAULT_COLOR", -1);
SharedPreferences.Editor editor = PreferenceManager.getDefaultSharedPreferences(EditActivity.this).edit();
editor.putInt("DEFAULT_COLORS", preViewColor);
editor.apply();
  • 首先宣告兩個變數,準備接顏色數值。
  • 再來new資料庫。
  • 預設的(preViewColor),拿到預設的顏色值,並且將剛剛ColorActiviy中自己選的顏色,更改成預設值,然後存入,與資料庫溝通。
else {
SharedPreferences sharedPreferences =
PreferenceManager.getDefaultSharedPreferences(this);
//有拿進去colorActivity重新設置,沒拿就拿原本的。
selectColors = sharedPreferences.getInt("DEFAULT_COLORS", -1);
item.setColor(getColors(selectColors));
item.setDatetime(new Date().getTime());
}
  • 這邊是指新增,更改部分則不用動code
  • 如果有自己選顏色,則ColorActiviy中自己的顏色,會自動存入資料庫,所以這邊再拿一次,最後將顏色塞入。

Imgur
創建menu然後,跑processMenu這個方法,帶null
Imgur
因為itemnull所以,直接看到最下面。

setVisible

是一種隱藏屬性,如果true就隱藏,false則出現,這邊用變數表示,為了其他地方能方便使用。
Imgur

case R.id.search_item:

沒做事。

case R.id.add_item:

新增並不用修改code

case R.id.revert_item:
for (int i = 0; i < itemAdapter.getCount(); i++) {
Item ri = itemAdapter.getItem(i);
if (ri.isSelected()) {
ri.setSelected(false);
itemAdapter.set(i, ri);}}
selectedCount = 0;
processMenu(null);
break;

還原

selectedCount = 0;
processMenu(null);
break
  • 讓勾勾數變0
  • 且將menu返回原本形式。
  • 跳出迴圈。
    回復原本狀態的按鈕,去拿到ItemAdapter中所有的數量,把有打勾的,全部還原,沒打勾的本來就沒打勾,不用處理。
  • for迴圈將所有isSelected()item全部設為false
  • 再將itemAdapter.set重新塞入,呈現還原的效果。
    Imgur
  • 傳入後notifyDataSetChanged();
  • 重新更新itemAdapter
    Imgur
  • 長按之後,進入processMenu()
  • 先行打勾。
  • 然後selectedCount++,為了計算打幾個勾以及設定visible而寫。

Imgur

  • 短按之後則也是,進入processMenu()
  • 先行將打勾關閉。
  • 然後selectedCount--
  • 然後去使用set這個方法,重新更改itemAdapter

上一篇
[Day11]ListView設計-02
下一篇
[Day13]ListView設計-04
系列文
Java 與 Kotlin 入門30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言