2010-06-03 20 views
7

我已經在這個網站上看到,如果我們想知道SelectedItem(.getSelectedItemPosition())的索引,就必須定製一個ListView的setOnItemSelectedListener和setOnItemClickListener。所以這就是我所做的,但它沒有存儲SekectedItem的位置,而是我總是-1 ...ListView setOnItemClickListener和setOnItemSelectedListener存儲選定的項目索引

我想要做的只是讓用戶從列表中刪除項目選中項目並單擊一個按鈕。

請參見下面的代碼:

listViewPeople.setOnItemClickListener(new ListView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> a, View v, int i, long l) { 
      try { 
       // Remembers the selected Index 
       listViewPeopleId = listViewPeople.getSelectedItemPosition(); 
      } 
      catch(Exception e) { 
       System.out.println("Nay, cannot get the selected index"); 
      } 
     } 
    }); 

    listViewPeople.setOnItemSelectedListener(new ListView.OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> a, View v, int i, long l) { 
      try { 
       // Remembers the selected Index 
       listViewPeopleId = listViewPeople.getSelectedItemPosition(); 
       System.out.println("Yay, set the selected index " + listViewPeopleId); 
      } 
      catch(Exception e) { 
       System.out.println("Nay, cannot get the selected index " + listViewPeopleId); 
      } 
     } 

     @Override 
     public void onNothingSelected(AdapterView<?> arg0) { 
      try { 
       // Remembers nothing selected 
       listViewPeopleId = -1; 
       System.out.println("Yay, set that nothing is selected " + listViewPeopleId); 
      } 
      catch(Exception e) { 
       System.out.println("Nay, cannot set that nothing is selected " + listViewPeopleId); 
      } 
     } 
    }); 

有什麼不對?

謝謝你的幫助!

克里斯托夫

回答

10

而不是做listViewPeople.getSelectedItemPosition();嘗試使用INT I參數來獲取索引。

+0

太棒了!只需要將刪除方法更改爲: \t arrayPeople.remove(arrayPeople.get(listViewPeopleId)); – Christophe 2010-06-04 01:42:32

相關問題