2011-11-28 2 views
0

나는 체크 박스를 사용하여 목록보기에 코드를 표시했다. 그러나 체크 박스의 값을 어떻게 확인할 수 있습니까? 몇 가지 예에서 목록을 구현하는이 방법이 잘 작동하고안드로이드에서 ListView 내부에서 체크 박스 상태를 확인하는 방법

spec = tabHost.newTabSpec(OPTS_TAB_TAG).setIndicator("Options", 
        res.getDrawable(R.drawable.ic_tab_options)) 
       .setContent(new TabContentFactory() 
       { 
       public View createTabContent(String arg0) 
       { 

         DbAdapter databaseManager = new DbAdapter(BusTrackerBetaActivity.this); 
         databaseManager.open(); 

         List<String> BusLinesList = new ArrayList<String>(); 
         BusLinesList = databaseManager.toStringList(databaseManager.getAllBusLines(), 1); 

         String[] BusLinesArray = BusLinesList.toArray(new String[BusLinesList.size()]); 


        databaseManager.close(); 

        ListView ls1 = new ListView(BusTrackerBetaActivity.this); 
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(
          BusTrackerBetaActivity.this, 
         android.R.layout.simple_list_item_multiple_choice, 
         BusLinesArray); 
        ls1.setAdapter(adapter); 
        ls1.setOnCreateContextMenuListener(BusTrackerBetaActivity.this); 

        ls1.setItemsCanFocus(false); 
        ls1.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); 
        return ls1; 

       } 

      });  

, acctually 내가 가진 다음과 같이 내가 탭이있는 프로그램을 구현하고있어, 및 탭 중 하나는 체크 박스와 목록보기가, 코드는 ,하지만 내 질문은 : 어떻게 각 확인란의 값 (true 또는 false)를 확인할 수 있습니까?

+1

[체크 박스가있는 ListView의 전체 예제] (http://www.vogella.de/articles/AndroidListView/article.html)를 확인하십시오. –

답변

1

이 작업을 수행하려면 ListViewgetCheckedItemPositions 함수를 사용할 수 있습니다. ListView의 각 항목의 확인 된 상태를 포함하는 SparseBooleanArray 개체를 반환합니다. SparseBooleanArray을 반복하여 검사 할 항목을 결정하십시오.

ListView 개체를 어딘가에 유지해야 나중에 확인 된 항목 상태를 확인해야 할 때 쉽게 액세스 할 수 있습니다.

SparseBooleanArray checkedItems = ls1.getCheckedItemPositions(); 
    if (checkedItems != null) 
     for (int i = 0; i < checkedItems.size(); i++) 
     { 
      if (checkedItems.valueAt(i)) 
      { 
       String s = ls1.getAdapter().getItem(checkedItems.keyAt(i)).toString(); 
       //s contains your checked item, checkedItems.keyAt(i) is the index of the checked item 
      } 

     } 
관련 문제