Android 从清单配置文件元数据中获取值

最近在上班工作当中,也尝到了一些新的知识,现总结如下
(1)从AndroidManifest.xml配置文件中获取meta数据

// 从Manifest.xml配置文件中获取数据
    public static String getMetaValue(Context context, String metaKey) {
        Bundle metaData = null;
        String metaValue = null;
        if (context == null || metaKey == null) {
            return null;
        }
        try {
            ApplicationInfo ai = context.getPackageManager().getApplicationInfo(
                    context.getPackageName(), PackageManager.GET_META_DATA);
            if (null != ai) {
                metaData = ai.metaData;
            }
            if (null != metaData) {
                metaValue = metaData.getString(metaKey);
            }
        } catch (NameNotFoundException e) {
        }
        return metaValue;// xxx
    }<meta-data android:name="api_key" android:value="xxx" />

(2)获取layout文件中的一些控件,如下是一个Activity

public class CustomActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        Resources resource = this.getResources();
        String pkgName = this.getPackageName();

        setContentView(resource.getIdentifier("custom_activity", "layout", pkgName));    // 获取pkgName包下名为custom_activity的一个layout文件
        TextView titleView = (TextView) this.findViewById(resource.getIdentifier("title", "id", pkgName));    // 获取pkgName包下id为title的一个widget
    }
}

之后在AndroidManifest.xml中,对该Activity进行配置,配置包名为完全路径名。
下面是查看resource.getIdentifier()方法分析

    public int getIdentifier(String name, String defType, String defPackage) {
        try {
            return Integer.parseInt(name);
        } catch (Exception e) {
            // Ignore
        }
        return mAssets.getResourceIdentifier(name, defType, defPackage);    // getResources().getIdentifier(name, defType, defPackage)
    }

返回给定的resource_name所对应的标识符,类似于R文件中的id(个人理解)!

时间: 2024-07-31 19:39:38

Android 从清单配置文件元数据中获取值的相关文章

jsp内置对象pageContext如何在Servlet中获取值

pageContext javax.servlet.jsp.PageContext 的实例,该对象代表该JSP 页面上下文,使用该对象可以访问页面中的共享数据.常用的方法有getServletContext和getServletConfig等. pageContext 对象的作用是取得任何范围的参数,通过它可以获取 JSP页面的out.request.reponse.session.application 等对象.pageContext对象的创建和初始化都是由容器来完成的,在JSP页面中可以直接

读取yml配置文件中的值

1.yml文件 person: lastName: hello age: 18 boss: false birth: 2017/12/12 maps: {k1: v1,k2: 12} lists: - lisi - zhaoliu dog: name: 小狗 age: 12 2.javaBean /** * 将配置文件中配置的每一个属性的值,映射到这个组件中 * @ConfigurationProperties:告诉SpringBoot将本类中的所有属性和配置文件中相关的配置进行绑定: * pr

jsp页面通过使用s标签获取值栈中的值(初识)

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitio

使用JavaScript设置、获取父子页面中的值

一:获取父页面中的值 有二种方法windows.open()和windows.showModalDialog() 1.windos.open(URL,name,reatures,replace) 再父页面中 fatherPage.aspx <script type="text/javascript"> function a(){ windows.open("sonPage.aspx") } </script> 在子页面(sonPage.asp

在action中将字符串、对象、list集合保存到值栈中,在jsp页面中获取的方法

转自:csdn 封装对象User,属性有id,username,email等1.1:在action中将字符串保存到值栈中   1.1.1 获取值栈对象         ValueStack stack = ActionContext.getContext().getValueStack();   1.1.2 将字符串保存到值栈中         stack.set("username","leo");1.2:在jsp页面中获取值栈中的字符串   1.2.1 <

jQuery中获取a标签的值

如题,一组相同action的a标签,不同的是a标签的内容为搜索内容.点击页面显示不同的数据 刚开始试过在 a标签中添加 value值 和id 的值,结果在jQuery中获取值均失败! 后来发现,根本不用那么复杂,可以直接获得a标签的html()内容或文本内容text() /** * 点击最新.热销点卡榜单显示点卡信息 */$(".rankings").click(function () { var info=$(this).html(); num=1;//这个不加跟页码有冲突 getP

Java中的值栈

OGNL表示式使用 和 值栈 OGNL是Object Graphic Navigation Language(对象图导航语言)的缩写,它是一个开源项目. Struts2框架使用OGNL作为默认的表达式语言. * xwork 提供 OGNL表达式 * ognl-3.0.5.jar OGNL 是一种比EL 强大很多倍的语言 OGNL 提供五大类功能 1.支持对象方法调用,如xxx.doSomeSpecial(): 2.支持类静态的方法调用和值访问 3.访问OGNL上下文(OGNL context)和

如何在两个jsp页面之间传值,在另外一个页面用EL表达式获取值

第一个jsp页面 <% String ids=request.getParameter("id"); int id=Integer.parseInt(ids); %> <c:set var="ses" scope="session" value="<%=id %>"></c:set> 在第一个页面中,用EL表达式存储到session作用域中,在第二个页面中再到session作用域

安卓Android控件ListView获取item中EditText值

可以明确,现在没有直接方法可以获得ListView中每一行EditText的值. 解决方案:重写BaseAdapter,然后自行获取ListView中每行输入的EditText值. 大概算法:重写BaseAdapter.getView函数,用一个数组存储EditText中的值,根据position即数组下标,在getView中动态更新EditText和动态获取EditText中的值.因为ListView中的item是复用的,如果不动态清空或动态获取EditText中值,就会出现数据紊乱,或者没数