2013-03-09 97 views
2

我有一個複選框的列表視圖,由下坡創建。獲取列表視圖中所有選中框的列表

public void addCard(final String cardId){ 
    ListView listView1; 
    Lists movielist = new Lists(); 
    List<String> movies = new ArrayList<String>();  
    movies = movielist.movieList(); 

    listView1 = (ListView)findViewById(R.id.listView1); 

    listView1.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_multiple_choice, movies)); 
    listView1.setItemsCanFocus(false); 
    listView1.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); 



    listView1.setOnItemClickListener(new OnItemClickListener() { 
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { 


    CheckedTextView ctv = (CheckedTextView)arg1;   
    Toast.makeText(getApplicationContext(),ctv.getText().toString(), Toast.LENGTH_SHORT).show(); 
    //do your stuff in here!   
    } 
    }); 

    Button submit = (Button)findViewById(R.id.button1); 
    submit.setOnClickListener(new OnClickListener() { 

     public void onClick(View v) { 
      Toast.makeText(getApplicationContext(),"", Toast.LENGTH_SHORT).show(); 

     } 
    }); 
} 

現在,當一個框被選中時,我可以爲與該複選框關聯的文本進行烘烤。我希望能夠做的是點擊與點擊提交後檢查的所有框相關聯的文本。

理想情況下,我想要一個List,每個值都是與複選框關聯的文本夾點之一。

乾杯!

回答

1

選中的視圖在SparseBooleanArray中返回,因此您可以使用下面的代碼來獲取鍵或值。下面的示例只是在單個字符串中顯示選定的名稱。

@Override 
public void onItemClick(AdapterView<?> adapter, View arg1, int arg2, long arg3) 
{ 

     SparseBooleanArray sp=getListView().getCheckedItemPositions(); 

    String str=""; 
     for(int i=0;i<sp.size();i++) 
     { 
      str+=movies.get(sp.keyAt(i))+","; 
     } 
     Toast.makeText(this, ""+str, Toast.LENGTH_SHORT).show(); 

} 

我認爲這是你想要的。

+0

工作就像一個魅力,謝謝! – Dandrews 2013-03-09 06:12:28

+0

歡迎:)很高興它幫助你:) – GrIsHu 2013-03-09 06:15:52

相關問題