Android 通過名稱獲取資源ID

weixin_33958585發表於2018-09-21

當我們獲取網路資料的時候,解析之後往往都是一個字串,而不是資源id,所有我們沒有辦法直接使用,只能通過名稱來獲取到資源id,

package com.example.administrator.demo;
import android.content.Context;

/**
 * Created by Administrator on 2017/8/27 0027.
 */
public class GetResourcesUtils{


    /**
     * 獲取資原始檔的id
     *
     * @param context
     * @param resName
     * @return
     */
    public static int getId(Context context, String resName) {
        return context.getResources().getIdentifier(resName, "id", context.getPackageName());
    }

    /**
     * 獲取資原始檔中string的id
     *
     * @param context
     * @param resName
     * @return
     */
    public static int getStringId(Context context, String resName) {
        return context.getResources().getIdentifier(resName, "string", context.getPackageName());
    }


    /**
     * 獲取資原始檔drable的id
     *
     * @param context
     * @param resName
     * @return
     */
    public static int getDrableId(Context context, String resName) {
        return context.getResources().getIdentifier(resName, "drable", context.getPackageName());
    }


    /**
     * 獲取資原始檔layout的id
     *
     * @param context
     * @param resName
     * @return
     */
    public static int getLayoutId(Context context, String resName) {
        return context.getResources().getIdentifier(resName, "layout", context.getPackageName());
    }


    /**
     * 獲取資原始檔style的id
     *
     * @param context
     * @param resName
     * @return
     */
    public static int getStyleId(Context context, String resName) {
        return context.getResources().getIdentifier(resName, "style", context.getPackageName());
    }

    /**
     * 獲取資原始檔color的id
     *
     * @param context
     * @param resName
     * @return
     */
    public static int getColorId(Context context, String resName) {
        return context.getResources().getIdentifier(resName, "color", context.getPackageName());
    }

    /**
     * 獲取資原始檔dimen的id
     *
     * @param context
     * @param resName
     * @return
     */
    public static int getDimenId(Context context, String resName) {
        return context.getResources().getIdentifier(resName, "dimen", context.getPackageName());
    }

    /**
     * 獲取資原始檔ainm的id
     *
     * @param context
     * @param resName
     * @return
     */
    public static int getAnimId(Context context, String resName) {
        return context.getResources().getIdentifier(resName, "anim", context.getPackageName());
    }

    /**
     * 獲取資原始檔menu的id
     */
    public static int getMenuId(Context context, String resName) {
        return context.getResources().getIdentifier(resName, "menu", context.getPackageName());
    }

}

相關文章