0
Android 용 MP3 플레이어를 만들려고합니다. 때문에 nullpointer 예외에ListView에서 TextView 자식에 액세스하려고하면 null 값이 반환됩니다.
String[] titles = player.getTitles();
trackList.setAdapter(new ArrayAdapter<String>(this, R.layout.track,titles));
나는 현재 재생중인 트랙 빨간색 페인트하려고, 그것은 임의 어린이나 충돌 페인트 : 나는 (트랙은 텍스트 뷰입니다) ListView가에있는 플레이어의 모든 트랙을로드 한 . 모든면에서 시도해 봤지만 ListView 메서드가 어떻게 작동하는지 이해하지 못했습니다. 내가 다시 칠하기 전에 setSelection 메서드를 호출
public void paintBlack() {
for (int i = trackList.getFirstVisiblePosition(); i < trackList.getLastVisiblePosition(); i++){
if (trackList.getChildAt(i)==null) {
System.out.println("Child is somehow null");
return;
}
((TextView)trackList.getChildAt(i)).setTextColor(Color.BLACK);
}
}
public void paintRed() {
for (int i = trackList.getFirstVisiblePosition(); i < trackList.getLastVisiblePosition();i++){
if (trackList.getChildAt(i)==null) {
System.out.println("Child is somehow null");
return;
}
String view = ((TextView)trackList.getChildAt(i)).getText().toString();
if (player.getTrack().equals(view)){
((TextView)trackList.getChildAt(i)).setTextColor(Color.RED);
}
}
때문에보기가 올바른 궤도에 항상 :
이는 선택된 하나 개의 빨간색 나는 모든 트랙 검은 색을 칠하는 데 사용하는 방법이 있고,
public void updateTrackList() {
trackList.setSelection(player.getCurrent());
}
사용자 지정 어댑터를 사용하는 방법을 잘 모르겠습니다. – user3333414