2016-04-01 4 views
-2

Я получаю сообщение об ошибке «java.lang.NullPointerException», установив свой адаптер в ActivityFragment.android - ListView.setAdapter error: java.lang.NullPointerException

Вот мой код:

private List<Music> musicList; 
public View inflate; 
ListView searchList; 
public class SearchFragment extends ListFragment { 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     context = getActivity().getApplicationContext(); 
     inflate = inflater.inflate(R.layout.search, container, false); 
     musicList = new ArrayList<Music>(); 
     adapter = new CustomListAdapter(musicList, context); 
     searchList.setAdapter(adapter); 
} 

У меня есть NullPointerException в следующем коде:

Ошибка находится в searchList.setAdapter(adapter); так я и стараюсь, чтобы изменить значение адаптера от new ArrayList<Music>() к new <Music>ArrayList(), но не повезло ,

Моя музыка класс выглядит следующим образом:

public class Music { 
    private String title, thumbnail, duration, uri, waveform; 
    private int likes, playbackCount; 

    public Music() { 
    } 

    public Music(String name, String thumbnailUrl, int likes, String rating, int playbackCount) { 
     this.title = name; 
     this.thumbnail = thumbnail; 
     this.likes = likes; 
     this.duration = rating; 
     this.playbackCount = playbackCount; 
    } 

    public String getTitle() { 
     return title; 
    } 
    public void setTitle(String name) { 
     this.title = name; 
    } 

    public String getThumbnail() { 
     return thumbnail; 
    } 
    public void setThumbnail(String thumbnail) { 
     this.thumbnail = thumbnail; 
    } 

    public int getLikes() { 
     return likes; 
    } 
    public void setLikes(int likes) { this.likes = likes; } 

    public String getDuration() { 
     return duration; 
    } 
    public void setDuration(String duration) { 
     this.duration = duration; 
    } 

    public int getPlayBackCount() { 
     return playbackCount; 
    } 
    public void setPlayBackCount(int playbackCount) { 
     this.playbackCount = playbackCount; 
    } 

    public String getUri() { 
     return uri; 
    } 
    public void setUri(String uri) { 
     this.uri = uri; 
    } 

    public String getWaveform() { 
     return waveform; 
    } 
    public void setWaveform(String waveform) { 
     this.waveform = waveform; 
    } 
} 
+0

Попробуйте Вы получаете NullPointerException Потому что вы не пишете ниже заявления в вас кода до установленного адептера. Вы должны инициализировать представление списка ListView searchList = (ListView) inflate.findViewById (R.id.searchList); –

ответ

1

Вы уже распространяется ListFragment так

setListAdapter(adapter); 

посмотрите tutorial

1

Первый, Вы приняли ListView searchList и пристанищем же предмет вы 't инициализирован, поэтому он дает вам NullPointerException при вызове searchList.setAdapter(adapter);.

Во-вторых, вы приняли ListFragment, так что вы можете напрямую получить listview, используя метод getListView(). Даже вы можете напрямую вызвать метод setListAdapter(adapter).

Смежные вопросы