fragment
안에 ListView
을 사용하고 있지만 ListView를 업데이트하는 데 문제가 있습니다. 이 시점에서ArrayAdapter를 사용하여 ListView 업데이트
items= new String[]{"item 1", "item 2", "item 3", "item 4", "item 5", "item 6"};
모든 일을 :
이
내가 내getItems()
는 문자열 배열의 게터입니다
ListView
adapter = new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_list_item_1,
((TabNavigation)this.getActivity()).getItems());
setListAdapter(adapter);
라는 항목에 어댑터를 설정하기 위해 사용하는 코드입니다 좋은 : 나는 나의 명부에서 6 개의 품목을 볼 수있다. 나는이 방법으로 내 배열 업데이트하려고하면
이제 :
items[0]="injected item";
내가 모든 작품 finem 내 어댑터를 통해 notifyDataSetChanged()
전화보다는를 제대로 내 목록 변화의 항목은, 첫 번째 요소로 보여주는 때문에 문자열 대신 항목 1. 의 항목을 주입하지만, 해당 명령의 나는 다음과 같은 사용하는 경우 :
items= new String[]{"injected item", "item 2", "item 3", "item 4", "item 5", "item 6"};
나는 내 어댑터를 통해 notifyDataSetChanged()
전화보다, 목록이 업데이트되지 않습니다.
저는 이것이 참조 용 값의 통과에 달려 있다고 생각합니다. 어댑터가 어댑터를 처음 설정할 때 전달 된 배열 복사본을 참조하는 것처럼 보입니다. 사실 내가 사용하는 경우 :
temp= new String[]{"injected item", "item 2", "item 3", "item 4", "item 5", "item 6"};
System.arraycopy(temp, 0, items, 0, temp.length);
목록보기가 올바르게 업데이트입니다. 하지만 원래 배열의 길이와 정확히 같은 길이를 사용해야합니다.
그럼 실제 질문은 목록에있는 항목의 개수를 변경해야한다면 ListView
을 어떻게 업데이트 할 수 있습니까?
맞습니다! 고마워. @linux – GVillani82
그냥 questio @ linux. 왜 List를 생성자의 마지막 매개 변수로 전달할 것인가? 다음과 같은 경고 메시지가 나타납니다.'형의 안전성 : ArrayList 형의 표현식에는 List에 부합하는 검사되지 않은 변환이 필요합니까 ?? –
GVillani82
ArrayList가 List.sorry를 확장했기 때문에 생각하지만 확실하지 않습니다. – zohreh