¿Cómo obtener el nombre del recurso de la identificación del recurso en Android?

En Android, el nombre del recurso es el nombre asignado a un recurso al declararlo en el código o en el XML. El nombre del recurso tiene el formato:

[<package_name>.]R.<resource_type>.<resource_name>

dónde

  • <package_name> es el nombre del paquete donde se almacena el recurso
  • <resource_type> es una subclase R para el tipo de recurso (dibujable, string, color, etc.)
  • <resource_name> es el nombre del recurso si se declara en el elemento de diseño (android: nombre) o un nombre de archivo sin extensión

A continuación se muestra cómo declaramos un recurso en el código y en XML:

  • En el código: R.string.geeksforgeeks
  • En XML: @string/geeksforgeeks

En este artículo, le mostraremos cómo puede obtener el nombre del recurso utilizando la identificación del recurso.

Implementación paso a paso

Paso 1: crea un nuevo proyecto en Android Studio

Para crear un nuevo proyecto en Android Studio, consulte Cómo crear/iniciar un nuevo proyecto en Android Studio . Demostramos la aplicación en Kotlin , así que asegúrese de seleccionar Kotlin como idioma principal al crear un nuevo proyecto.

Paso 2: trabajar con el archivo activity_main.xml

Vaya a la aplicación > res > diseño > actividad_principal.xml y agregue el siguiente código a ese archivo. A continuación se muestra el código para el archivo activity_main.xml . Agregue un botón y un TextView en el archivo de diseño.

XML

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
  
    <!-- We shall find the resource name of this Button -->
    <!-- Also, if we click this button, we shall get 
         the desired results in the TextView below -->
    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="click"
        android:layout_centerInParent="true"/>
  
    <!-- This TextView shall display the resource name
          when the above button is clicked -->
    <TextView
        android:id="@+id/textView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:gravity="center"
        android:layout_above="@id/button"/>
  
</RelativeLayout>

Paso 3: trabajar con el archivo MainActivity.kt

Vaya al archivo MainActivity.kt y consulte el siguiente código. A continuación se muestra el código del archivo MainActivity.kt . Se agregan comentarios dentro del código para comprender el código con más detalle. Obtenga la identificación del recurso y obtenga y muestre el nombre del recurso al hacer clic en el botón.

Kotlin

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.TextView
  
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        // Declaring and initializing the button
        // and text view from the layout file
        val mButton = findViewById<Button>(R.id.button)
        val mTextView = findViewById<TextView>(R.id.textView)
  
        // Fetching the id of the button (resource
        val resourceId = mButton.id
  
        // Getting the name of the resource
        val resourceName = resources.getResourceName(resourceId)
  
        // When button is clicked, the text view
        // will display the value of resourceName
        mButton.setOnClickListener {
            mTextView.text = resourceName.toString()
        }
    }
}

Producción:

Puede ver que al hacer clic en el botón, el nombre del recurso se muestra en TextView.

Publicación traducida automáticamente

Artículo escrito por aashaypawar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *