2011-01-31 9 views
6

tengo una vista de lista y me gustaría ir a una nueva actividad de cada elemento de la lista i press.this es mi código ..Listview va onclick a una nueva actividad

public class DialogActivity extends Activity { 

private ListView lv1; 

private String lv_arr[]={"SuperLeague 2010-2011","Olympiakos on YouTube","Olympiakos Web Site","Find Karaiskaki on map","Reserve Tickets"}; 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     requestWindowFeature(Window.FEATURE_NO_TITLE); 
     setContentView(R.layout.dialog); 

     lv1=(ListView)findViewById(R.id.dialog_list); 

     // By using setAdpater method in listview we an add string array in list. 

     lv1.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1 , lv_arr)); 


     lv1.setOnItemClickListener(new OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, View view, 
      int position, long id) { 

     // Intent newActivity = new Intent(view.getContext(),agones.class);  
      //  startActivity(newActivity); 

     } 
    }); 

    } 

}

+8

Entonces, ¿qué problemas que estas teniendo? – Falmarri

+0

no sé qué escribir en el setOnItemListener en orden, si presiono el ítem de la lista de lista "SuperLeague" para ir a mi clase de superleague.java –

Respuesta

21

Uso una instrucción switch en ese método:

public void onItemClick(AdapterView<?> parent, View view, 
     int position, long id) { 
    switch(position) 
    { 
     case 0: Intent newActivity = new Intent(this, superleague.class);  
       startActivity(newActivity); 
       break; 
     case 1: Intent newActivity = new Intent(this, youtube.class);  
       startActivity(newActivity); 
       break; 
     case 2: Intent newActivity = new Intent(this, olympiakos.class);  
       startActivity(newActivity); 
       break; 
     case 3: Intent newActivity = new Intent(this, karaiskaki.class);  
       startActivity(newActivity); 
       break; 
     case 4: Intent newActivity = new Intent(this, reservetickets.class);  
       startActivity(newActivity); 
       break; 
    } 
} 

Cambie los nombres de las clases a lo que sea que necesiten para cada actividad.

+1

gracias amigo, eso funciona bien –

+0

¿cómo puedes hacer esto cuando te refieres al ejemplo del índice? quiero cargar una clase específica para el índice 0, etc. – Giant

1

Por ejemplo:

private OnClickListener mSLeagueListener = new OnClickListener() { 
    public void onClick(View v) { 
     Intent intent = new Intent(Main.this, SuperLeague.class); 
     Main.this.startActivity(intent); 
    } 
}; 
7
public class DialogActivity extends Activity { 

private ListView lv1; 

private String lv_arr[]={"SuperLeague 2010-2011","Olympiakos on YouTube","Olympiakos Web Site","Find Karaiskaki on map","Reserve Tickets"}; 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     requestWindowFeature(Window.FEATURE_NO_TITLE); 
     setContentView(R.layout.dialog); 

     lv1=(ListView)findViewById(R.id.dialog_list); 

     // By using setAdpater method in listview we an add string array in list. 

     lv1.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1 , lv_arr)); 


     lv1.setOnItemClickListener(new OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, View view, 
      int position, long id) { 
      final TextView mTextView = (TextView)view; 
      switch (position) { 
      case 0: 
      Intent newActivity0 = new Intent(DialogActivity.this,NewActivity0.class);  
      startActivity(newActivity0); 
      break; 
      case 1: 
      Intent newActivity1 = new Intent(DialogActivity.this,NewActivity1.class);  
      startActivity(newActivity1); 
      break; 
      case 0: 
      Intent newActivity2 = new Intent(DialogActivity.this,NewActivity2.class);  
      startActivity(newActivity2); 
      break; 
      case 0: 
      Intent newActivity3 = new Intent(DialogActivity.this,NewActivity3.class);  
      startActivity(newActivity3); 
      break; 
      default: 
       // Nothing do! 
      } 

     } 
    }); 

    } 
2

Ésta es tarde pero aún así esto puede ayudar a alguien :-)

listView.setOnItemClickListener(new OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, View view, 
      int position, long id) { 

if(position == 1) 
{ 

     Intent myIntent = new Intent(YourActivity.this, SecondActivity.class); 
      startActivityForResult(myIntent, 0); 
} 

if(position == 2) 
{ 

     Intent myIntent = new Intent(YourActivity.this, ThirdActivity.class); 
      startActivityForResult(myIntent, 0); 
} 
    } 
    }); 

Aquí posición refieren a las filas de vista de lista ..

+0

esto es lo que yo quería, gracias :) – Zub

Cuestiones relacionadas