0
我为我的音乐播放器应用程序制作了自定义的ArrayAdapter,当我尝试设置View的文本时,我的应用程序崩溃。我知道,从论坛上看,你不能从后台线程访问UI元素,或者在尝试这样的事情之前必须先设置ContentView(),但是我的情况有点不同。有任何想法吗?Android setText()崩溃
MusicAdapter.class
Context context;
int layoutResourceId;
Song data[] = null;
private Handler threadHandler = new Handler();
public MusicAdapter(Context context, int layoutResourceId, Song[] data) {
super(context, layoutResourceId, data);
this.layoutResourceId = layoutResourceId;
this.context = context;
this.data = data;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
SongHolder holder = null;
if(row == null){
LayoutInflater inflater = ((Activity) context).getLayoutInflater();
row = inflater.inflate(layoutResourceId, parent, false);
holder = new SongHolder();
holder.txtTitle = (TextView) row.findViewById(R.id.songName);
row.setTag(holder);
}else{
holder = (SongHolder)row.getTag();
}
Song song = data[position];
holder.txtTitle.setText(song.title); //This line crashes
return row;
}
static class SongHolder{
TextView txtTitle;
}
}
我的错误消息: 01-11 21:34:38.226:E/AndroidRuntime(32319):致命异常:主 01-11 21: 34/38.226:E/AndroidRuntime(32319):java.lang.NullPointerException 01-11 21:34:38.226:E/AndroidRuntime(32319):at com.example.audity.MusicAdapter $ SongHolder。(MusicAdapter.java:51 )
什么错误信息,你得到有用的:)? – Tarik
更新了错误 –
给定的空指针异常,然后持有者或txtTitle或歌曲为空的问题。你应该尝试隔离每个这些以找出它是哪一个 –