Android 通过字符串资源名获取资源id
时间: 2023-10-01 18:11:52 浏览: 273
在 Android 中,我们可以通过字符串资源名获取资源id,具体步骤如下:
1. 定义一个字符串变量存储要获取的资源名:
```java
String resName = "my_string_resource";
```
2. 获取 Resources 对象:
```java
Resources res = getResources();
```
3. 获取应用包名:
```java
String packageName = getPackageName();
```
4. 使用 getIdentifier() 方法获取资源id:
```java
int resId = res.getIdentifier(resName, "string", packageName);
```
其中,第一个参数是资源名,第二个参数是资源类型(例如 "string" 表示字符串类型),第三个参数是应用程序包名。
5. 检查获取到的资源id是否为0,如果为0说明资源不存在,否则说明资源存在:
```java
if (resId != 0) {
// 资源存在,可以使用 res.getString(resId) 获取资源字符串值
} else {
// 资源不存在
}
```
相关问题
Android 通过字符串资源名获取raw资源id
可以通过如下代码实现:
```java
String resourceName = "your_resource_name";
int resourceId = getResources().getIdentifier(resourceName, "raw", getPackageName());
```
其中,`your_resource_name` 是你要获取的资源名称,注意不要包含文件后缀名。`raw` 表示要获取的资源类型,这里是 raw 类型的资源。`getPackageName()` 获取当前应用程序的包名。
如果找到了对应的资源,则 `resourceId` 就是该资源的 id。如果找不到,则 `resourceId` 为 0。
Android Studio中如何获取字符串资源并在按钮点击事件中使用?
在Android Studio中,获取字符串资源通常在`strings.xml`文件中完成,然后通过`getString()`方法在Java或Kotlin代码中引用。如果你需要在按钮点击事件中使用这个资源,可以这样做:
1. **strings.xml** 文件(res/values目录下):
创建一个字符串资源,例如:
```xml
<string name="my_button_text">点击我</string>
```
2. **Java** 代码:
```java
String buttonText = getString(R.string.my_button_text);
Button myButton = findViewById(R.id.my_button);
myButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
myButton.setText(buttonText); // 在按钮点击事件中使用该字符串资源
}
});
```
3. **Kotlin** 代码:
```kotlin
val buttonText = resources.getString(R.string.my_button_text)
val myButton = findViewById<Button>(R.id.my_button)
myButton.setOnClickListener {
myButton.text = buttonText // 使用字符串资源
}
```
这样,无论你在哪个活动中修改了字符串资源`my_button_text`,只要刷新编译后的应用,所有依赖此资源的地方都会自动更新。
阅读全文