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>
