2011-01-31 16 views
6

ho un listview e vorrei andare a una nuova attività da ogni elemento della lista i press.this è il mio codice ..listView va onclick a una nuova attività

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

Allora, cosa problemi stai avendo? – Falmarri

+0

Non so cosa scrivere in setOnItemListener nell'ordine, se premo l'elemento di lista "SuperLeague" per andare alla mia classe superleague.java –

risposta

21

Usa un'istruzione switch in questo metodo:

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; 
    } 
} 

Modificare i nomi di classe in base alle proprie esigenze per ciascuna attività.

+1

grazie compagno! Che funziona bene –

+0

come si può fare questo quando si fa riferimento ad esempio indice Voglio caricare una classe specifica per l'indice di articolo 0 e così via. – Giant

1

Ad esempio:

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

Questo è in ritardo, ma ancora questo può aiutare qualcuno :-)

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); 
} 
    } 
    }); 

Qui posizione si riferisce alle righe ListView ..

+0

questo è quello che volevo, grazie :) – Zub

Problemi correlati