2010-02-07 5 views
5

J'ai une vue de base en XML.créer vue dynamique, plusieurs fois une vue X, obtenir/valeur définie pour chaque groupe

http://img513.imageshack.us/img513/7171/contextnotionlevelprefs.jpg http://img513.imageshack.us/img513/7171/contextnotionlevelprefs.jpg

<RelativeLayout android:id="@+id/RelativeLayout01" android:layout_width="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="wrap_content"><TextView android:layout_height="wrap_content" android:layout_width="fill_parent" android:text="Family" android:id="@+id/Family" android:textSize="16px" android:padding="5px" android:textStyle="bold" android:gravity="center_horizontal"></TextView> 
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/Family" android:layout_alignRight="@+id/Family" android:text="@string/context_notion_level_off" android:id="@+id/ContextNotionLevel"></TextView> 
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toLeftOf="@+id/Detailed" android:layout_below="@+id/Family" android:layout_alignLeft="@+id/Family" android:textStyle="bold" android:id="@+id/Module" android:text="Location"></TextView> 
<SeekBar android:layout_height="wrap_content" android:id="@+id/SeekBar01" android:layout_width="fill_parent" android:padding="5px" android:saveEnabled="true" android:layout_below="@+id/Module" android:max="2"></SeekBar> 

</RelativeLayout> 

Comment puis-je répéter les temps section X sous, pour ressembler ici:
http://img687.imageshack.us/img687/4674/contextnotionleveldraft.png http://img687.imageshack.us/img687/4674/contextnotionleveldraft.png

Alors, comment puis-je accéder à la barre de recherche pour tous les articles?
S'il vous plaît noter que je veux que ce soit dynamique au travail, par exemple: pour 15 fois.

Comment sera en mesure de donner un nom (emplacement), la valeur (valeur SeekBar) et récupérer la valeur pour chaque groupe.

Répondre

10

De l'image que vous avez, vous ne voulez pas répéter le titre

Ce que vous pouvez faire est de créer une nouvelle xml « Family » (de mymain.xml) contenant une mise en page et le titre

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout android:orientation="vertical" android:id="@+id/myMainLayout" android:layout_width="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="wrap_content"> 
<TextView android:layout_height="wrap_content" android:layout_width="fill_parent" android:text="Family" android:id="@+id/Family" android:textSize="16px" android:padding="5px" android:textStyle="bold" android:gravity="center_horizontal"></TextView> 
</LinearLayout> 

Puis dans un autre xml (myviews.xml), mettre le xml que vous avez mis de votre OP (avec le titre supprimé)

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout android:id="@+id/RelativeLayout01" 
    android:layout_width="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_height="wrap_content"> 

    <TextView android:layout_width="fill_parent" 
     android:layout_height="wrap_content" android:textStyle="bold" 
     android:id="@+id/Module" android:text="Location"> 
    </TextView> 

    <TextView android:layout_width="wrap_content" 
     android:layout_height="wrap_content" android:text="context_notion_level_off" 
     android:layout_alignRight="@+id/Module" android:id="@+id/ContextNotionLevel"> 
    </TextView> 


    <SeekBar android:layout_height="wrap_content" android:id="@+id/SeekBar01" 
     android:layout_width="fill_parent" android:padding="5px" 
     android:saveEnabled="true" android:layout_below="@+id/Module" 
     android:max="2"> 
    </SeekBar> 

</RelativeLayout> 

Et l'activité:

super.onCreate(savedInstanceState); 

setContentView(R.layout.mymain); 
LinearLayout l = (LinearLayout) findViewById(R.id.myMainLayout); 
LayoutInflater linflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

for(int i = 0 ; i < 15; i++) { 
    View myView = linflater.inflate(R.layout.myviews, null); 
    SeekBar s = (SeekBar) myView.findViewById(R.id.SeekBar01); 
    //Set an id to know which seekbar is in use 
    s.setId(i); 
    TextView t = (TextView) myView.findViewById(R.id.Module); 

    //Change name dynamically 
    t.setText(("My location " + i).toString()); 
    s.setOnSeekBarChangeListener(new OnSeekBarChangeListener(){ 

    @Override 
    public void onProgressChanged(SeekBar seekBar, int progress, 
      boolean fromUser) { 
     Log.i("=========","My SeekBar = " + seekBar.getId()); 
     Log.i("=========","My Progress = " + progress); 

    } 

    @Override 
    public void onStartTrackingTouch(SeekBar seekBar) { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public void onStopTrackingTouch(SeekBar seekBar) { 
     // TODO Auto-generated method stub 

    }}); 
    l.addView(myView); 
} 

EDIT:

Pour ajouter des barres de défilement, ajouter des tags ScrollView autour du LinearLayout de votre mymain.xml

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" android:layout_height="wrap_content" 
    android:orientation="vertical" android:scrollbars="vertical"> 
<LinearLayout android:orientation="vertical" android:id="@+id/myMainLayout" android:layout_width="fill_parent" android:layout_height="wrap_content"> 
<TextView android:layout_height="wrap_content" android:layout_width="fill_parent" android:text="Family" android:id="@+id/Family" android:textSize="16px" android:padding="5px" android:textStyle="bold" android:gravity="center_horizontal"></TextView> 
</LinearLayout> 

</ScrollView> 
+0

où/comment puis-je ajouter un ScrollView quand il y a trop de montrer sur l'écran? – Pentium10

+0

Vous mettez ScrollView autour de la LinearLayout de la mymain.xml – ccheneson

+0

hein, j'ai raté ce xmlns: android pour scrollview (merci) – Pentium10

Questions connexes