2011-07-12 11 views
10

Hej wszystkim, których szukałem godzinami, próbując znaleźć rozwiązanie tego problemu, moim celem jest posiadanie Listview, gdy otwiera się również otwarcie innej aktywności. Właściwie to mam możliwość otwarcia innej aktywności po kliknięciu, ale jak mogę ją uzyskać, aby każdy element listy otwierał własną działalność? Jestem strasznie przepraszam, jeśli to pytanie jest już odpowiedź, ale linki nie znalazłem naprawdę opisać to, co robi kod [Tak jestem nowicjuszem :)]Listview, otwórz nową działalność onClick

to im kod używając

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

     } 
     }); 
    } 
} 

Odpowiedz

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

Jeśli masz pewną ograniczoną liczbę listy można użyć przełącznika tutaj przypadek na pozycji

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

Jeśli wiesz, których działalność ma być otwarty, gdy różne elementy listy są kliknięty, a potem po prostu przypisać identyfikator lub TA g do elementów listy.
W wywołaniu funkcji onItemClick dostępny jest parametr Widok,
użyj go, aby uzyskać identyfikator lub znacznik do ich rozróżnienia i wywoływania odpowiednich działań.

+0

dziękuję za udzielenie odpowiedzi na bardziej skomplikowany problem. – 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; 
    } 
} 
Powiązane problemy