android-从name中获取resource identifier

问题描述

从name中获取resource identifier

我在开发的一个程序,从数据库的每个logo中读取resource name,然后设置 drawables。
但是当我想获取logo的整型字符串时,在Logcat中得到一个NumberFormatException。然后程序在启动时就强行关闭了。
代码如下:

String logo;
logo = c.getString(2);
button.setBackgroundResource(Integer.parseInt(logo));

logo 保存在数据库中:R.drawable.logo

如何处理这个问题呢?

解决方案

button.setBackgroundResource这个是对应R生成的id
而你存储R.drawable.logo是个string,在parse的时候它并不认你是否是资源文件区转成id
而是当做string去转换,无疑你这边是错误的
你可以尝试存储int id = R.drawable.logo;
然后button.setBackgroundResource(id);

解决方案二:

建议用此法

String logo = c.getString(2);//"logo"
int imgID = getResources().getIdentifier(logo, "drawable", "com.android.myTestPackageName"));
button.setBackgroundResource(imgID);
时间: 2024-10-21 11:13:21

android-从name中获取resource identifier的相关文章

数据库-android 从SQLLite中获取到的图片路径,用Bitmap 加载不出来

问题描述 android 从SQLLite中获取到的图片路径,用Bitmap 加载不出来 android 从SQLLite中获取到的图片路径,用Bitmap 加载不出来,但是从本地文件中获取到的路径可以正常加载显示 下面是这两种方式的主要代码 //从数据库获取路径并加载 for (DiagHistory diagHistory : diagLists) { String path = diagHistory.getHistoryPic(); Bitmap bitmap =BitmapFactor

android 从资源中获取数组

   8.1.1.概述 除了在Java代码中定义数组,Android还提供了在资源中定义数组,然后在Java代码中解析资源,从而获取数组的方法. 实际开发中,推荐将数据存放在资源文件中,以实现程序的逻辑代码与数据分离,便于项目的管理,尽量减少对Java代码的修改. 8.1.2.在资源中定义数组 步骤1.在res/values文件夹下创建arrays.xml文件: 步骤2.在arrays.xml文件中创建一个数组,如下代码所示: <?xml version="1.0" encodi

Android在OnCreate中获取控件的宽度和高度的实现代码

在Android中,有时需要对控件进行测量,得到的控件宽度和高度可以用来做一些计算.在需要自适应屏幕的情况下,这种计算就显得特别重要.另一方便,由于需求的原因,希望一进入界面后,就能得到控件的宽度和高度. 可惜的是,根据我的验证,利用网上转载的那些方法在OnCreate函数中获取到的仍然是0(希望搞技术的能自己验证过再转载),例如Measure方法之后调用getMeasuredWidth的值还是0. 原因是因为当OnCreate函数发生时,只是提供了数据初始化的机会,此时还没有正式绘制图形.而绘

解决Android从相册中获取图片出错图片却无法裁剪问题的方法_Android

在学习获取相册中图片进行裁剪的时候遇到了比较大的问题,在纠结了近半天才真的解决,下面分享一下学习经验. 问题: 选择了相册中的图片之后要进入图片裁剪的时候出错,(华为)手机提示"此图片无法获取",经百度后,明白是版本不同导致的URI的问题的问题,原文如下: 4.3或以下,选了图片之后,根据Uri来做处理,很多帖子都有了,我就不详细说了.主要是4.4,如果使用上面pick的原生方法来选图,返回的uri还是正常的,但如果用ACTION_GET_CONTENT的方法,返回的uri跟4.3是完

关于android端message中获取ext信息的问题

问题描述 我们公司服务器会发送消息,并且在ext属性中存入类似[email]{@"user[/email]":用户信息,"publishTime":发送时间}的信息,ios直接用EMMessage.ext获得,但是android端没有类似的方法,无法取得ext,求解 解决方案 有的,http://www.easemob.com/docs/android/advanced/

android应用程序中获取view的位置

 我们重点在获取view的y坐标,你懂的... 依次介绍以下四个方法:   1.getLocationInWindow   int[] position = new int[2];  textview.getLocationInWindow(position);  System.out.println("getLocationInWindow:" + position[0] + "," + position[1]);  这个方法是将view的左上角坐标存入数组中.此

No resource identifier found for attribute &amp;#39;showAsAction&amp;#39; in package &amp;#39;android&amp;#39;

运行一个项目时在一个menu.xml文件item属性android:showAsAction 报错 No resource identifier found for attribute 'showAsAction' in package 'android' google了下,老外说是版本问题,showAsAction was added in API level 11要将API提升到11,添加 "android-support-v7-appcompat.jar" 到Android库(

xml-从android外部文件中获取web服务的 uri?

问题描述 从android外部文件中获取web服务的 uri? 我开发一个 android 应用程序调用rest web服务,解析结果到 Json 对象.我想在一个单独的文件中保存 web 服务的 URI,所以我在 strings.xml 文件中添加了基础的 uri: <string name="BaseRestURL">http://192.168.1.2:8080/SensorRestService/webresources/</string> 在 java

Android中获取屏幕的长度和宽度

android中获取屏幕的长度和宽度,参考了网上有很多代码,但结果与实际不符,如我的手机是i9000,屏幕大小是480*800px,得 到的结果却为320*533 结果很不靠谱,于是自己写了几行代码,亲测一下 测试参数: 测试环境: i9000( 三星) 物理屏幕:480*800px density :1.5 测试代码: // 获取屏幕密度(方法1) int screenWidth = getWindowManager().getDefaultDisplay().getWidth(); // 屏