Android setTag方法的key問題解決辦法
android在設(shè)計(jì)View類時(shí),為了能儲(chǔ)存一些輔助信息,設(shè)計(jì)一個(gè)一個(gè)setTag/getTag的方法。這讓我想起在Winform設(shè)計(jì)中每個(gè)Control同樣存在一個(gè)Tag。
今天要說的是我最近學(xué)習(xí)android遇見的setTag的坑。一般情況下我們只需要使用唯一參數(shù)的setTag方法。但有時(shí)我們需要存儲(chǔ)多個(gè)數(shù)據(jù),所以這個(gè)時(shí)候我們就需要使用帶key的重載。
文檔是描述:“ The specified key should be an id declared in the resources of the application to ensure it is unique (see the ID resource type). Keys identified as belonging to the Android framework or not associated with any package will cause an IllegalArgumentExceptionto be thrown.”
這里說明必須保證key的唯一,但是如果我們使用java常量定義key(private static final int TAG_ID = 1;)這樣你任然會(huì)遇見如下錯(cuò)誤:
java.lang.IllegalArgumentException: The key must be an application-specific resource id
正確的解決方案是:
在res/values/strings.xml中定義這個(gè)key常量,如下:
<resources> <item type="id" name="tag_first"></item> <item type="id" name="tag_second"></item> </resources>
使用如下:
imageView.setTag(R.id.tag_first, "Hello"); imageView.setTag(R.id.tag_second, "Success");
以上就是對Android setTag方法的key問題的解決辦法,謝謝大家對本站的支持!
- Android開發(fā) -- setTag的妙用和The key must be an application-specific resource id 異常
- Android實(shí)現(xiàn)上拉加載更多ListView(PulmListView)
- Android onNewIntent()觸發(fā)機(jī)制及注意事項(xiàng)
- Android Intent 用法全面總結(jié)及實(shí)例代碼
- 三行Android代碼實(shí)現(xiàn)白天夜間模式流暢切換
- Android通過JNI實(shí)現(xiàn)守護(hù)進(jìn)程
- Android仿淘寶商品拖動(dòng)查看詳情及標(biāo)題欄漸變功能
- Android自定義ActionProvider ToolBar實(shí)現(xiàn)Menu小紅點(diǎn)
- Android 安全加密:對稱加密詳解
相關(guān)文章
Android使用ViewPager實(shí)現(xiàn)滾動(dòng)廣告
這篇文章主要為大家詳細(xì)介紹了Android使用ViewPager實(shí)現(xiàn)滾動(dòng)廣告,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-11-11android獲取當(dāng)前運(yùn)行Activity名字的方法
這篇文章主要介紹了android獲取當(dāng)前運(yùn)行Activity名字的方法,對比分析了兩種實(shí)現(xiàn)方法供大家選擇,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-01-01Android scrollToTop實(shí)現(xiàn)點(diǎn)擊回到頂部(兼容PullTorefreshScrollview)
當(dāng)頁面滑動(dòng)到底部,出現(xiàn)回到頂部的按鈕相信對大家來說并不陌生,下面這篇文章主要介紹了關(guān)于Android scrollToTop實(shí)現(xiàn)點(diǎn)擊回到頂部,并兼容PullTorefreshScrollview的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒。2017-03-03Android 手機(jī)獲取手機(jī)號(hào)實(shí)現(xiàn)方法
本文主要介紹Android 獲取手機(jī)號(hào)的實(shí)現(xiàn)方法,這里提供了實(shí)現(xiàn)方法,和具體操作流程,并符實(shí)現(xiàn)代碼,有需要的小伙伴可以參考下2016-09-09Android基于OpenCV實(shí)現(xiàn)圖像脫色
脫色是將彩色圖像轉(zhuǎn)換為灰度圖像的過程。同時(shí),它也是數(shù)字打印,風(fēng)格化的黑白照片渲染以及許多單通道圖像處理應(yīng)用程序中的基本工具。本文講述基于OpenCV實(shí)現(xiàn)圖像脫色的步驟2021-06-06Android開發(fā)中Widget的生命周期實(shí)例分析
這篇文章主要介紹了Android開發(fā)中Widget的生命周期,結(jié)合實(shí)例形式分析了Android開發(fā)中Widget生命周期所涉及的常用方法與使用技巧,代碼備有詳盡的注釋便于理解,需要的朋友可以參考下2016-02-02Android使用CrashHandler來獲取應(yīng)用的crash信息的方法
本篇文章主要介紹了Android使用CrashHandler來獲取應(yīng)用的crash信息的方法,具有一定的參考價(jià)值,有興趣的可以了解一下2017-09-09Android組件ContextMenu實(shí)現(xiàn)長按事件
這篇文章主要為大家詳細(xì)介紹了Android組件ContextMenu實(shí)現(xiàn)長按事件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-04-04