Exemples de code Android

Tableaux de chaînes dans le fichier "strings.xml"

Cet exemple montre comment regrouper les chaînes de caractères du fichier "strings.xml" à l'intérieur de tableaux et en récupérer le contenu depuis le code Java de l'activité.

MainActivity.java

package net.codeandroid.tableauchaines;

import androidx.appcompat.app.AppCompatActivity;

import android.content.res.Resources;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
    int indexHobbits = 0;
    int indexMagiciens = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Resources res = getResources();
        String[] hobbits = res.getStringArray(R.array.hobbits);
        int nbHobbits = hobbits.length;
        String[] magiciens = res.getStringArray(R.array.magiciens);
        int nbMagiciens = magiciens.length;

        TextView tv_hobbit = findViewById(R.id.tv_hobbit);
        TextView tv_magicien = findViewById(R.id.tv_magicien);

        Button btnHobbit = findViewById(R.id.btn_hobbit);
        btnHobbit.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                tv_hobbit.setText(hobbits[indexHobbits]);
                indexHobbits = (indexHobbits + 1) % nbHobbits;
            }
        });

        Button btnMagicien = findViewById(R.id.btn_magicien);
        btnMagicien.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                tv_magicien.setText(magiciens[indexMagiciens]);
                indexMagiciens = (indexMagiciens + 1) % nbMagiciens;
            }
        });
    }
}

activity_main.xml

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center_horizontal"
    tools:context=".MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:layout_margin="10dp"
        android:padding="10dp"
        android:textSize="20sp"
        android:text="Choisissez votre hobbit"/>

    <TextView
        android:id="@+id/tv_hobbit"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:layout_margin="10dp"
        android:padding="10dp"
        android:textSize="50sp"
        android:textColor="#0f0"/>

    <Button
        android:id="@+id/btn_hobbit"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:text="Renouveler" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:layout_margin="10dp"
        android:padding="10dp"
        android:textSize="20sp"
        android:text="Choisissez votre magicien"/>

    <TextView
        android:id="@+id/tv_magicien"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:layout_margin="10dp"
        android:padding="10dp"
        android:textSize="50sp"
        android:textColor="#f00"/>

    <Button
        android:id="@+id/btn_magicien"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:text="Renouveler" />

</LinearLayout>

strings.xml

<resources>
    <string name="app_name">Exemple de tableau de chaînes</string>
    <string-array name="hobbits">
        <item>Bilbon</item>
        <item>Frodon</item>
        <item>Meriadoc</item>
        <item>Peregrin</item>
        <item>Sam</item>
    </string-array>
    <string-array name="magiciens">
        <item>Alatar</item>
        <item>Gandalf</item>
        <item>Pallando</item>
        <item>Radagast</item>
        <item>Saroumane</item>
    </string-array>
</resources>