0
私はAndroidの開発にはまったく新しく、アイテムのリストにMediaPlayerを追加して、各単語の発音が再生されるようにしました。間違ったトラックを再生しているアダプタの中のMediaPlayer
しかし、間違ったトラックが再生されているため、正しいトラックをリストビューの各アイテムにリンクする方法を理解できません。 たとえば、ログに表示されているようにスクロールしているときにIDが変わるので、私が誤解したことがあると思います。 私が理解していないのは、ImageViewなどでは、オーディオファイルではなく、ImageViewで動作する理由です。
public class WordsAdapter extends ArrayAdapter<Words>{
private int colorview;
private View listItemView;
private Words currentWords;
public WordsAdapter(Context context, ArrayList<Words> words, int color){
super(context, 0, words);
colorview = color;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
listItemView = convertView;
if(listItemView == null) {
listItemView = LayoutInflater.from(getContext()).inflate(
R.layout.list_view_black, parent, false);
}
currentWords = getItem(position);
ImageView image = (ImageView) listItemView.findViewById(R.id.imageicon);
if(currentWords.hasImage()) {
image.setImageResource((currentWords.getImageID()));
image.setVisibility(View.VISIBLE);
}else image.setVisibility(View.GONE);
TextView defaultTextView = (TextView) listItemView.findViewById(R.id.text_default);
defaultTextView.setText(currentWords.getDefaultWord());
TextView miwokTextView = (TextView) listItemView.findViewById(R.id.text_miwok);
miwokTextView.setText(currentWords.getMiwokWord());
View linearWords = listItemView.findViewById(R.id.linear_words);
linearWords.setBackgroundResource(colorview);
Button ButtonPlay = (Button) listItemView.findViewById(R.id.playButton);
ButtonPlay.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
MediaPlayer player = MediaPlayer.create(v.getContext(), currentWords.getAudioFile());
Log.v("Audio id : ", player.getTrackInfo().toString());
player.start();
}
});
return listItemView;
}
}