How to use resource arrays using xml in Android?

后端 未结 2 819
长发绾君心
长发绾君心 2020-12-16 11:58

I am new in Android development and facing a problem with managing Android resources. I want to create a listView with an ImageView and a TextView.

Following is my i

相关标签:
2条回答
  • 2020-12-16 12:17

    You can use resources from res/values/arrays.xml.

    For drawables

    <integer-array name="your_images">
        <item>@drawable/ic_active_image</item>
        <item>@drawable/ic_visited_image</item>
    </integer-array>
    
    val drawables = resources.obtainTypedArray(R.array.your_images)
    val drawable = drawables.getResourceId(position, -1)
    image.setImageResource(drawable)
    drawables.recycle()
    

    For colors

    <array name="your_colors">
        <item>#365374</item>
        <item>#00B9FF</item>
    </array>
    
    val colors = resources.obtainTypedArray(R.array.your_colors)
    val color = colors.getColor(position, -1)
    title.setTextColor(color)
    colors.recycle()
    

    For strings

    <string-array name="your_strings">
        <item>Active</item>
        <item>Visited</item>
    </string-array>
    
    val strings = resources.getStringArray(R.array.your_strings)
    title.text = strings[position]
    

    Plurals:

    <plurals name="proposal_plurals">
        <item quantity="zero">No proposals</item>
        <item quantity="one">%1$d proposal</item>
        <item quantity="two">%1$d proposals</item>
        <item quantity="few">%1$d proposals</item>
        <item quantity="many">%1$d proposals</item>
        <item quantity="other">%1$d proposals</item>
    </plurals>
    
    val proposals = count.takeIf { it != 0 }?.let {
        resources.getQuantityString(R.plurals.proposal_plurals, it, it)
    } ?: "No proposals available"
    
    0 讨论(0)
  • 2020-12-16 12:20

    Create an XML like below and put it in res/values/arrays.xml

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <array name="icons">
            <item>@drawable/home</item>
            <item>@drawable/settings</item>
            <item>@drawable/logout</item>
        </array>
        <array name="colors">
            <item>#FFFF0000</item>
            <item>#FF00FF00</item>
            <item>#FF0000FF</item>
        </array>
    </resources>
    

    Then use code like this:

    Resources res = getResources();
    TypedArray icons = res.obtainTypedArray(R.array.icons);
    Drawable drawable = icons.getDrawable(0);
    
    TypedArray colors = res.obtainTypedArray(R.array.colors);
    int color = colors.getColor(0,0);
    

    Source: http://developer.android.com/guide/topics/resources/more-resources.html

    0 讨论(0)
提交回复
热议问题