2010-02-07 14 views
5

Tengo una vista base en XML.crear vista dinámica, múltiples una vista X veces, obtener/establecer valor para cada grupo

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> 

Como puedo repetir las veces bajo la sección X, para parecerse aquí:
http://img687.imageshack.us/img687/4674/contextnotionleveldraft.png http://img687.imageshack.us/img687/4674/contextnotionleveldraft.png

Entonces, ¿cómo puedo acceder a la barra de búsqueda para todos los artículos?
Tenga en cuenta que quiero que esto sea dinámico, por ejemplo, para 15 veces.

Cómo se puede dar un nombre (Ubicación), establecer el valor (valor de la barra de búsqueda) y recuperar el valor para cada grupo.

Respuesta

10

De la imagen que usted tiene, usted no quiere repetir el título "Familia"

Lo que puede hacer es crear un nuevo XML (mymain.xml) contiene un diseño y el título

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

Luego, en otra XML (myviews.xml), poner el xml que han puesto de su OP (con el título eliminado)

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

y la actividad:

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:

Para añadir barras de desplazamiento, añadir etiquetas ScrollView alrededor del LinearLayout de su 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

dónde/cómo puedo añadir una ScrollView cuando hay demasiados para mostrar el ¿la pantalla? – Pentium10

+0

Pones ScrollView alrededor de LinearLayout desde mymain.xml – ccheneson

+0

eh, perdí ese xmlns: android para scrollview (gracias) – Pentium10

Cuestiones relacionadas