ugarte
25/11/12, 23:48:29
Buenas!! Estoy comenzando con el mundo de la programación en android y tengo un problema que ni san google me ha podido solucionar, acudo a vuestra experiencia.
Estoy haciendo una aplicación simple pero para simplificar un poco las cosas os pongo un ejemplo con mi problema:
Me gustaría mostrar en una pantalla una serie de datos (TextView), una lista en medio, luego otra serie de datos(TextView) que se cargarán de una base de datos. El problema que me encuentro es que si la lista es demasiado grande los datos de abajo se ocultan y no hay posibilidad de verlos y que el scroll se pone en la lista y no en la activity. Si pongo scroll en la activity (Con <ScrollView> al principio y al final) me encuentro con que la lista solo me muestra el primer elemento y no aumenta. Como puedo solucionar el problema?
Siento si no me se explicar bien, dejo el código de un ejemplo rápido que he hecho.
main_activity.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Datos cargados de la base de datos 1" />
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Datos cargados de la base de datos 2" />
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Datos cargados de la base de datos 3" />
<ListView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/lstLista"/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Datos cargados de la base de datos 4" />
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Datos cargados de la base de datos 5" />
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Datos cargados de la base de datos 6" />
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Datos cargados de la base de datos 7" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<Button
android:id="@+id/btnAceptar"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<Button
android:id="@+id/btnCancelar"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>/>
</LinearLayout>
</LinearLayout>
MainActivity.java
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView lstLista = (ListView)findViewById(R.id.lstLista);
String lista[] = new String[20];
for (int i = 0; i < lista.length; i++)
lista[i] = new String("Elemento "+i);
ArrayAdapter <String> adaptador = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, lista);
lstLista.setAdapter(adaptador);
}
}
Estoy haciendo una aplicación simple pero para simplificar un poco las cosas os pongo un ejemplo con mi problema:
Me gustaría mostrar en una pantalla una serie de datos (TextView), una lista en medio, luego otra serie de datos(TextView) que se cargarán de una base de datos. El problema que me encuentro es que si la lista es demasiado grande los datos de abajo se ocultan y no hay posibilidad de verlos y que el scroll se pone en la lista y no en la activity. Si pongo scroll en la activity (Con <ScrollView> al principio y al final) me encuentro con que la lista solo me muestra el primer elemento y no aumenta. Como puedo solucionar el problema?
Siento si no me se explicar bien, dejo el código de un ejemplo rápido que he hecho.
main_activity.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Datos cargados de la base de datos 1" />
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Datos cargados de la base de datos 2" />
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Datos cargados de la base de datos 3" />
<ListView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/lstLista"/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Datos cargados de la base de datos 4" />
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Datos cargados de la base de datos 5" />
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Datos cargados de la base de datos 6" />
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Datos cargados de la base de datos 7" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<Button
android:id="@+id/btnAceptar"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<Button
android:id="@+id/btnCancelar"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>/>
</LinearLayout>
</LinearLayout>
MainActivity.java
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView lstLista = (ListView)findViewById(R.id.lstLista);
String lista[] = new String[20];
for (int i = 0; i < lista.length; i++)
lista[i] = new String("Elemento "+i);
ArrayAdapter <String> adaptador = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, lista);
lstLista.setAdapter(adaptador);
}
}