¿Cómo puedo implementar un ListView sin ListActivity? (Utilice sólo Actividad)
Soy nuevo en Android, y realmente necesito hacerlo de esta manera (he considerado hacerlo en otra Activity
), pero ¿alguien puede mostrarme un código simple (sólo el método onCreate()
) que puede hacer ListActivity
sin ListActivity
?
Gracias
- Obtención de datos desde la vista de lista personalizada al hacer clic
- Android listview desplazamiento a número de listitems
- Cómo rellenar un ListView personalizado de ListArray
- Herramientas de ListView: listitem no funciona en android studio 2.2 stable channel
- Agregar encabezados en una listaVer utilizando ArrayAdapter
- Cómo ocultar la línea horizontal en la parte inferior de cada elemento en android listview?
- Lista de Android con elementos 'gris'
- Saltar un getView en Android
- Android: ListView selecciona el elemento y resalta el elemento seleccionado mediante programación
- Obtener el elemento seleccionado mediante la casilla de verificación en ListView
- Cómo configurar onContextItemClickListener para un menú contextual de ListView?
- Android: vista de la lista de identificaciones
- Cómo deshabilitar vista de encabezado en ListView
Si tiene un diseño xml para la actividad que incluye una listaVer como este
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <ListView android:id="@android:id/list" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="fill_parent"
Entonces en su onCreate usted podría tener algo como esto
setContentView(R.layout.the_view); ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, myList); ListView lv = (ListView)findViewById(android.R.id.list); lv.setAdapter(adapter); lv.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> a, View v,int position, long id) { Toast.makeText(getBaseContext(), "Click", Toast.LENGTH_LONG).show(); } });
Incluya el siguiente recurso en su archivo res / layout / main.xml:
<ListView android:id="@+id/id_list_view" android:layout_width="fill_parent" android:layout_height="fill_parent" />
Tu_clase.java
import android.widget.ListView; import android.widget.ArrayAdapter; public class your_class extends Activity { private ListView m_listview; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); m_listview = (ListView) findViewById(R.id.id_list_view); String[] items = new String[] {"Item 1", "Item 2", "Item 3"}; ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, items); m_listview.setAdapter(adapter); } }
Lo siguiente crea un ListView simple mediante programación:
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); String[] myList = new String[] {"Hello","World","Foo","Bar"}; ListView lv = new ListView(this); lv.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,myList)); setContentView(lv); }
También puede hacer referencia a su diseño, instanciar un objeto de diseño de su código y, a continuación, crear el ListView en Java. Esto le da cierta flexibilidad en términos de configuración de altura dinámica y ancho en tiempo de ejecución.
Incluya el siguiente archivo de recursos en su res / layout / main.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <ListView android:id="@+id/listView" android:layout_width="match_parent" android:layout_height="match_parent" </ListView> </RelativeLayout>
MainActivity.java
public class MainActivity extends Activity { ListView listView; String[] listPlanet={"mercury","Venus","Mars","Saturn","Neptune"}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); listView = (ListView)findViewById(R.id.listView)); ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, listPlanet); listview.setAdapter(adapter); } }