編輯:關於Android編程
android在設計View類時,為了能儲存一些輔助信息,設計一個一個setTag/getTag的方法。這讓我想起在Winform設計中每個Control同樣存在一個Tag。
今天要說的是我最近學習android遇見的setTag的坑。一般情況下我們只需要使用唯一參數的setTag方法。但有時我們需要存儲多個數據,所以這個時候我們就需要使用帶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;)這樣你任然會遇見如下錯誤:
java.lang.IllegalArgumentException: The key must be an application-specific resource id
正確的解決方案是:
在res/values/strings.xml中定義這個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問題的解決辦法,謝謝大家對本站的支持!
Google已經建議Android開發全部轉向Android Studio開發,Android Studio 是使用gradle編譯、打包的,那麼問題來了,gradle可
簡介項目開發中發現問題、解決問題這個過程中會出現很多問題,比如重復出現、某個問題的遺留,這些問題的本質就是設計模式。今天記錄設計模式的知識點。內容在java以及其他的面向
我們通過最常見的登陸案例進行介紹android-async-http開源項目中有關類的使用.希望對你學習android-async-http開源項目有所幫助. 1.在應用
MainActivity如下: package cc.textview5; import android.os.Bundle; import android.tex