2013-10-10 3 views
0

List에 대해 4 개의 매개 변수를 사용하는 클래스가 있습니다. 이 클래스를 Item이라고합니다. ArrayList 인 List 변수를 만들었습니다. 그런 다음 새 ListAdapter를 만듭니다. 이 어댑터를 기본 ListView로 설정합니다. 그런 다음 ArrayList에 10 개의 입력을 추가합니다. 이 모든 작동하지만 ListAdapter ArrayList 항목을 추가하려고 할 때 메서드에 캐스팅 추가하려면 오류가 발생합니다. 여기 맞춤 어댑터에 목록 추가시 오류 - Android

는 ListAdapter로 설정 I에 대한

final List <Item> tempList = new ArrayList <Item>(); 

    mainListViewListAdapter = new ListAdapter(MainActivity.this, R.layout.main_list_item_layout, tempList); 
     // set mainListAdapter 
     mainListView.setAdapter(mainListViewListAdapter); 

     for (int x = 0; x < 10;x++){ 
      tempList.add (new Item ("Example1","Example2","Example3","Example4")); 
     } 

     ***HERE IS WHERE I GET THE ERROR AT addAll();*** 
     mainListViewListAdapter.addAll(tempList); 

mainListViewListAdapter 이야기하고있는 번호 및 mainListView은 ListView에 설정됩니다.

왜 mainListViewListAdapter에 캐스트를 추가하겠습니까? 다른 프로젝트에서이 코드를 실행했으며 캐스트를 사용할 필요가 없었습니다.

+0

당신이 어댑터를 설정하기 전에 항목을 추가 할 수 있습니다이 오류를 방지 할 수 있습니다. addAll 메소드를 사용하여 라인을 제거하십시오. 정확하게이 방법을 사용하는 것이 중요하지 않은 경우. – lub0v

+0

좋은 생각이지만, 액티비티 중에 아이템이 여러 번 listadapter에 추가 되었기 때문에 어댑터를 설정 한 후에 추가해야합니다. – user2861085

+0

답변을 찾았습니다. 'ListAdapter'는'mainListViewListAdapter = 새로운 ListAdapter (MainActivity.this, R.layout.main_list_item_layout, tempList); 앞에 있어야했습니다. – user2861085

답변

0

사용할 때마다 어댑터를 삭제해야합니다. 어댑터와 새 어댑터에 대한 값의 새 StringArray를 사용하십시오. 이 constructionale에 대한

사용 :

String[] values1 = new String[] { "Sunny", "Sealand", "Lengord" }; 

    makeListItem(values1); 

    public void makeListItem(String[] addValues){ 

MySimpleArrayAdapter lvAdapter1 = new MySimpleArrayAdapter(this, addValues); 

ListView1.setAdapter(lvAdapter1); lvAdapter1 = null; } 
관련 문제