Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Android – ¿Cómo crear una vista de lista seleccionable?

Quiero hacer que todos mis elementos de lista en el listview se abran en una nueva página, por lo que cada elemento de vista de lista se abre en una nueva página negra que puedo usar. No sé cómo implementar esto en absoluto. He buscado durante horas y no puedo encontrar una respuesta a mi solución. Sería muy apreciado si alguien pudiera mostrar y / o explicar cómo hacerlo en lugar de proporcionar un enlace, pero también es útil.

Aquí está mi código hasta ahora:

  • Android: ¿Proporciona sugerencias de búsqueda recientes sin actividad de búsqueda?
  • Compruebe si la geolocalización ha sido falsificada
  • Android - Espera respuesta de volea para volver
  • ¿Cómo enviar post parámetros dinámicamente (o en bucle) en OKHTTP 3.x en android?
  • ¿Cuál es el propósito básico de la anotación @SerializedName en android usando GSon
  • Diseñar un diseño como debajo de la imagen con botones de imagen en android
  • <string-array name="sections"> <item >Pro Constructive</item> <item >Con Constructive</item> <item >1st Speaker Cross</item> <item >Pro Rebbutal</item> <item >Con Rebuttal</item> <item >2nd Speaker Cross</item> <item >Pro Summary</item> <item >Con Summary</item> <item >Grand Cross</item> <item >Pro Final Focus</item> <item >Con Final Focus</item> </string-array> 

    Esto está en mi string.xml

      <ListView android:id="@+id/listView1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:entries="@array/sections" > </ListView> 

    Esto está en mi activity_main.xml.

    ¿Dónde puedo ir desde aquí para hacer que cada elemento de mi lista haga clic y pueda abrir una nueva página?

    ¡Gracias por adelantado!

    EDITAR:

    Logcat ya no es relevante.

  • ¿Cuál es la diferencia entre getExtras y getBundleExtras?
  • Google Android controlador USB y ADB
  • En la aplicación Google Play, ¿cómo se implementa el ViewGroup que muestra las listas superiores de aplicaciones?
  • Cómo obtener el tiempo de computación en NDK
  • Enviando correo electrónico con adjunto a través de GMailSender?
  • Recurso para Android Slight Izquierda / Derecha Acción de diapositiva en listview
  • 4 Solutions collect form web for “Android – ¿Cómo crear una vista de lista seleccionable?”

    De hecho, es bastante fácil:

    Esta es su actividad con el ListView, implementa un OnItemClickListener:

     public class MainActivity extends Activity implements OnItemClickListener { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_main); //* *EDIT* * ListView listview = (ListView) findViewById(R.id.listView1); listview.setOnItemClickListener(this); } public void onItemClick(AdapterView<?> l, View v, int position, long id) { Log.i("HelloListView", "You clicked Item: " + id + " at position:" + position); // Then you start a new Activity via Intent Intent intent = new Intent(); intent.setClass(this, ListItemDetail.class); intent.putExtra("position", position); // Or / And intent.putExtra("id", id); startActivity(intent); } 

    Editar

    El código anterior se colocará en su MainActivity.java. Cambié el nombre de la clase a MainActivity y el contentView a setContentView(R.layout.activity_main) – Los nombres son los de un recién creado Android Project en Eclipse.
    Por favor, vea también las 2 nuevas líneas bajo // * Editar * – que establecerá el Listener para los clics en los elementos de la lista.

    Tu activity_main.xml debería tener este aspecto:

     <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content"> <ListView android:id="@+id/listView1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:entries="@array/sections" > </ListView> </RelativeLayout> 

    El array.xml (no string.xml) en su carpeta `res / values ​​/` se parece a esto

     <resources> <string-array name="sections"> <item >Pro Constructive</item> <item >Con Constructive</item> <item >1st Speaker Cross</item> <item >Pro Rebbutal</item> <item >Con Rebuttal</item> <item >2nd Speaker Cross</item> <item >Pro Summary</item> <item >Con Summary</item> <item >Grand Cross</item> <item >Pro Final Focus</item> <item >Con Final Focus</item> </string-array> </resources> 

    Nota: Si copia y pega este código, debería funcionar. Pero obtendrá un error al hacer clic en un elemento porque todavía no ha creado el ListItemDetail.class .

    He aquí un ejemplo de cómo podría verse esto:

    Su ListItemDetail.java:

     public class ListItemDetail extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_listitem); Intent intent = getIntent(); int position = intent.getIntExtra("position", 0); // Here we turn your string.xml in an array String[] myKeys = getResources().getStringArray(R.array.sections); TextView myTextView = (TextView) findViewById(R.id.my_textview); myTextView.setText(myKeys[position]); } } 

    Y su activity_listitem.xml

     <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/my_textview"/> </LinearLayout> 

    Si copia pasado este código funcionará.

    Utilice la función onListItemClick para configurar su Intent que carga la siguiente actividad y transmite los datos.

     public void onListItemClick(ListView parent, View view, int position, long id) { Intent intent = new Intent(this, AnotherActivity.class); intent.putExtra("position", position); startActivity(intent); } 

    Usted puede poblar listview de la matriz en string.xml como esta

     String[] myKeys = getResources().getStringArray(R.array.sections); ListView mListView = (ListView)findViewById(R.id.listView1); mListView.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, myKeys)); 

    Y hacer clic en los elementos de vista de lista es bastante simple y fácil method.just utilizar setOnItemClickListener

     mListView.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> arg0,View arg1, int position, long arg3) { Intent n = new Intent(getApplicationContext(), yourclass.class); n.putExtra("position", position); startActivity(n); } }); 

    ListView = (ListView) findViewById (R.id.listview);

    • Producto en la lista

       listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { if(position==0){ Intent i=new Intent(MainActivity.this,Main3Activity.class); startActivity(i); } } }); 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.