2011-07-12 25 views
10

Hola a todos los que he buscado durante horas tratando de encontrar una solución a esto, mi objetivo es tener una vista de lista cuando se abra y abra otra actividad. Bueno, en realidad lo tengo para poder abrir otra actividad cuando se hace clic, pero ¿cómo la obtengo para que cada elemento de la lista abra su propia actividad? Me siento mucho si esta pregunta ya está contestada pero los enlaces que he encontrado no describe realmente lo que el código está haciendo [Sí soy un novato :)]Listview, abra nueva actividad enClick

este es el im código utilizando

@Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     String[] countries = getResources().getStringArray(R.array.countries_array); 
     setListAdapter(new ArrayAdapter<String>(this, R.layout.newfile, countries)); 

     ListView lv = getListView(); 
     lv.setTextFilterEnabled(true); 

     lv.setOnItemClickListener(new OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, View view, 
      int position, long id) { 
      // When clicked, show a toast with the TextView text 
      Intent myIntent = new Intent(view.getContext(), Html_file.class); 
      startActivityForResult(myIntent, 0); 

     } 
     }); 
    } 
} 

Respuesta

17
lv.setOnItemClickListener(new OnItemClickListener() { 
    public void onItemClick(AdapterView<?> parent, View view, 
     int position, long id) { 
     // When clicked, show a toast with the TextView text 
     if(position == 1) { 
      //code specific to first list item  
      Intent myIntent = new Intent(view.getContext(), Html_file1.class); 
      startActivityForResult(myIntent, 0); 
     } 

     if(position == 2) { 
      //code specific to 2nd list item  
      Intent myIntent = new Intent(view.getContext(), Html_file2.class); 
      startActivityForResult(myIntent, 0); 
     } 
    } 
}); 
3

Si usted tiene un número limitado de lista se puede utilizar el caso del interruptor aquí en la posición

lv.setOnItemClickListener(new OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, View view, 
      int position, long id) { 
      // When clicked, show a toast with the TextView text 
      Intent myIntent = new Intent(view.getContext(), Html_file.class); 
      startActivityForResult(myIntent, 0); 

     } 
}); 
1

Si sabe qué actividad se va a abrir cuando se hace clic en diferentes elementos de la lista, a continuación, sólo asignar ID o ta g a los elementos de la lista.
En la devolución de llamada de onItemClick, tiene un parámetro View,
utilícelo para obtener id o etiqueta para diferenciarlos y llamar a la actividad respectiva.

+0

gracias por darnos una respuesta a un problema más complicado. – Suhaib

4
public void onItemClick(AdapterView<?> parent, View view, 
    int position, long id) { 
    switch(position) { 
    case 0: Intent newActivity = new Intent(this, i1.class);  
       startActivity(newActivity); 
       break; 
    case 1: Intent newActivity = new Intent(this, i2.class);  
       startActivity(newActivity); 
       break; 
    case 2: Intent newActivity = new Intent(this, i3.class);  
       startActivity(newActivity); 
       break; 
    case 3: Intent newActivity = new Intent(this, i4.class);  
       startActivity(newActivity); 
       break; 
    case 4: Intent newActivity = new Intent(this, i5.class);  
       startActivity(newActivity); 
       break; 
    } 
} 
Cuestiones relacionadas