6 votes

Comment créer un nombre variable de fenêtres de texte dans Android ?

J'espère que ce n'est pas une mauvaise question, mais j'ai cherché dans le S.O. et je n'ai pas pu trouver la réponse.

Je suis en train de créer une application Android qui est essentiellement un réveil. Je veux que l'activité principale affiche toutes les alarmes qui ont été créées ainsi que des informations sur ces alarmes. Ma question à ce sujet est de savoir comment créer un nombre donné de vues de texte en fonction du nombre d'alarmes créées. Par exemple, si un utilisateur a créé (et non supprimé) 5 alarmes, comment puis-je faire en sorte que l'activité principale affiche 5 vues de texte plutôt qu'un nombre donné de vues de texte ? Voici mon prototype horriblement codé en dur pour tester la fonctionnalité (à part ce problème).

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".Launch" >

    <ScrollView
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
        <LinearLayout android:orientation="vertical" 
                      android:layout_width="fill_parent" 
                      android:layout_height="fill_parent">

            <TextView
                android:orientation = "vertical"
                android:layout_width="fill_parent"
                android:layout_height="75dp"
                android:text="Time"/>
                    <View
                    android:layout_width="fill_parent"
                    android:layout_height="0.2dp"
                    android:id="@+id/separator"
                    android:visibility="visible"
                    android:background="@android:color/darker_gray"/>

            <TextView
                android:orientation = "vertical"
                android:layout_width="fill_parent"
                android:layout_height="75dp"
                android:text="Time"/>
                    <View
                    android:layout_width="fill_parent"
                    android:layout_height="0.2dp"
                    android:id="@+id/separator"
                    android:visibility="visible"
                    android:background="@android:color/darker_gray"/>

            <TextView
                android:orientation = "vertical"
                android:layout_width="fill_parent"
                android:layout_height="75dp"
                android:text="Time"/>
                    <View
                    android:layout_width="fill_parent"
                    android:layout_height="0.2dp"
                    android:id="@+id/separator"
                    android:visibility="visible"
                    android:background="@android:color/darker_gray"/>

        </LinearLayout>

    </ScrollView>

</RelativeLayout>

Comme vous pouvez le constater, il n'y a que trois vues de texte codées en dur plutôt qu'un certain nombre de vues de texte créées par l'utilisateur.

Encore une fois, j'espère que cette question n'est pas trop approfondie ou qu'elle n'a pas déjà trouvé de réponse ailleurs, mais j'ai cherché et je n'ai rien trouvé.

Merci d'avance !

9voto

Steve P. Points 9354

Vous pouvez le faire de manière programmatique :

int size = numAlarms; // total number of TextViews to add

TextView[] tv = new TextView[size];
TextView temp; 

for (int i = 0; i < size; i++) 
{
    temp = new TextView(this);

    temp.setText("Alarm: " + i); //arbitrary task

    // add the textview to the linearlayout
    myLinearLayout.addView(temp);

    tv[i] = temp;
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X