第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

需要數(shù)組類型;發(fā)現(xiàn):'java.util.map

需要數(shù)組類型;發(fā)現(xiàn):'java.util.map

HUWWW 2023-09-27 17:03:42
我的變量是第一類,例如:MyClass{    companion Object{        @JvmField val foo = mapOf("a" to "b")    }}當(dāng)我從另一個(gè)類調(diào)用它時(shí),例如:setBackgroundColor(Color.parseColor(MyClass.foo["..."]));出現(xiàn)錯(cuò)誤“需要數(shù)組類型;發(fā)現(xiàn):'java.util.map < java.lang.String,java.lang.String>'” 問題是什么?請(qǐng)注意,如果我在 MyClass 中執(zhí)行相同的調(diào)用,它會(huì)完美運(yùn)行這些是錯(cuò)誤: 這是我的真實(shí)數(shù)組值:companion object{    @JvmField val darkMode = mapOf(        "bgColor" to "#000000",        "cardColor" to "#262626"    )}當(dāng)我從擴(kuò)展的類中調(diào)用它時(shí),會(huì)出現(xiàn)錯(cuò)誤RecyclerView.ViewHolder
查看完整描述

1 回答

?
尚方寶劍之說

TA貢獻(xiàn)1788條經(jīng)驗(yàn) 獲得超4個(gè)贊

我剛剛嘗試過這個(gè):


        val foo = mapOf("a" to "Red")

        someView.setBackgroundColor(Color.parseColor(foo["a"]))

它工作正常,您能分享有關(guān)異常的更多詳細(xì)信息嗎?


更新

我嘗試完全按照所寫的方式使用您的內(nèi)容,只是我替換了byMyClass的值而不是您的字符串。aRedb


你使用parseColor正確嗎?


    /**

     * </p>Parse the color string, and return the corresponding color-int.

     * If the string cannot be parsed, throws an IllegalArgumentException

     * exception. Supported formats are:</p>

     *

     * <ul>

     *   <li><code>#RRGGBB</code></li>

     *   <li><code>#AARRGGBB</code></li>

     * </ul>

     *

     * <p>The following names are also accepted: <code>red</code>, <code>blue</code>,

     * <code>green</code>, <code>black</code>, <code>white</code>, <code>gray</code>,

     * <code>cyan</code>, <code>magenta</code>, <code>yellow</code>, <code>lightgray</code>,

     * <code>darkgray</code>, <code>grey</code>, <code>lightgrey</code>, <code>darkgrey</code>,

     * <code>aqua</code>, <code>fuchsia</code>, <code>lime</code>, <code>maroon</code>,

     * <code>navy</code>, <code>olive</code>, <code>purple</code>, <code>silver</code>,

     * and <code>teal</code>.</p>

     */

    @ColorInt

    public static int parseColor(@Size(min=1) String colorString) {

        if (colorString.charAt(0) == '#') {

            // Use a long to avoid rollovers on #ffXXXXXX

            long color = Long.parseLong(colorString.substring(1), 16);

            if (colorString.length() == 7) {

                // Set the alpha value

                color |= 0x00000000ff000000;

            } else if (colorString.length() != 9) {

                throw new IllegalArgumentException("Unknown color");

            }

            return (int)color;

        } else {

            Integer color = sColorNameMap.get(colorString.toLowerCase(Locale.ROOT));

            if (color != null) {

                return color;

            }

        }

        throw new IllegalArgumentException("Unknown color");

    }

更新2:

好吧,你說“一個(gè)擴(kuò)展的類RecyclerView.ViewHolder”,但所說的類只是 RecyclerView 類中的一個(gè)抽象類,所以它沒有setBackgroundColor,除非你正在做類似的事情:


yourViewHolderInstance.itemView.setBackgroundColor.


那么你的 setBackgroundColor 的簽名是什么?


看起來像嗎public void setBackgroundColor(@ColorInt int color) {?


我只是為了好玩才將其添加到我的應(yīng)用程序中:


    override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {

        (holder as BaseViewHolder).bind(getItem(position))


// For Filippo :)

holder.itemView.setBackgroundColor(Color.parseColor(MyClass.foo["a"]))

    }

嗯……現(xiàn)在一切看起來都很紅。:)


更新3

好的,根據(jù)您的最新更新,您是從 Java 調(diào)用此函數(shù),因此您不能使用 Kotlin 語法...


做這個(gè):


        final Map<String, String> foo = MyClass.foo;

        yourView.setBackgroundColor(Color.parseColor(foo.get("a")));

顯然,您可以避免中間分配并進(jìn)行:


        v.setBackgroundColor(Color.parseColor(MyClass.foo.get("a")));

我通常更喜歡前者,特別是如果您給它所有有意義的名稱并且需要調(diào)試,但就我而言,沒有真正的區(qū)別。


查看完整回答
反對(duì) 回復(fù) 2023-09-27
  • 1 回答
  • 0 關(guān)注
  • 163 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)