2010-02-07 10 views
5

Ho una vista di base in XML.creazione di viste dinamiche, più volte X volte, ottieni/imposta valore per ogni gruppo

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> 

Come posso ripetere i tempi Sezione X sotto, a guardare come qui:
http://img687.imageshack.us/img687/4674/contextnotionleveldraft.png http://img687.imageshack.us/img687/4674/contextnotionleveldraft.png

Poi, come posso accedere alla SeekBar per tutti gli elementi?
Si prega di notare che voglio che questo sia dinamico per funzionare ad esempio: per 15 volte.

Come sarà possibile fornire un nome (Posizione), impostare il valore (valore della barra di ricerca) e recuperare il valore per ciascun gruppo.

risposta

10

Dalla foto che avete, non avete intenzione di ripetere il titolo "Famiglia"

Che cosa si può fare è creare un nuovo XML (mymain.xml) contenente un layout e il titolo

<?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> 

Poi in un altro xml (myviews.xml), mettere il xml che avete messo dal OP (con il titolo rimosso)

<?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> 

e l'attività:

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:

Per aggiungere le barre di scorrimento, aggiungere tag ScrollView intorno al LinearLayout dal 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

dove/come posso aggiungere uno ScrollView quando ci sono troppi per mostrare su lo schermo? – Pentium10

+0

Hai inserito ScrollView attorno al LinearLayout dal mymain.xml – ccheneson

+0

e ho perso quell'xmlns: android per scrollview (grazie) – Pentium10

Problemi correlati