Evrything工作正常,但Listview没有更新。
这是适配器
public class SongAdapter extends BaseAdapter {
private int[] iconImage;
private String[] indexText;
private String[] englishText;
private LayoutInflater myInflater;
//Constructor
public SongAdapter(Context c, String[] aIndexText, String[] aEnglishText,
int[] aIconImage) {
iconImage = aIconImage;
indexText = aIndexText;
englishText = aEnglishText;
myInflater = (LayoutInflater) c.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
return englishText.length;
}
@Override
public Object getItem(int position) {
return indexText[position] + " " + englishText[position];
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View myView = myInflater.inflate(R.layout.songs_detail_layout, null);
ImageView iconImageView = myView.findViewById(R.id.iconImageView);
TextView indexTextView = myView.findViewById(R.id.IndexTextView);
TextView englishTextView = myView.findViewById(R.id.englishTextView);
iconImageView.setImageResource(iconImage[position]);
indexTextView.setText(indexText[position]);
englishTextView.setText(englishText[position]);
//Make all icons invisible
iconImageView.setVisibility(View.INVISIBLE);
return myView;
}
}
这是MainActivity
公共类MainActivity扩展了AppCompatActivity {
private SongAdapter mySongAdapter;
private Field[] fields;
private MediaPlayer mp;
private ListView lv;
private ArrayList<String> myArrayList=new ArrayList<>();
private Button btnPlay;
private Button btnNxt;
private Button btnRep;
private Button btnShuf;
private Button btnAto;
private TextView elapsedTimeLabel;
private TextView remainingTimeLabel;
private SeekBar seekBar = null;
private int resId = 0;
private int position = 0;
private int newPosition = 0;
private Toast toast;
private TextView titleTextView;
private Boolean shuffle = false;
private Boolean paused = false;
private Boolean isAuto = false;
private volatile Boolean stopThread = false;
private Random rand = new Random();
private ImageView indexImageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
try {
lv = findViewById(R.id.songsListView);
int[] iconImage = {R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp,
R.drawable.ic_play_circle_outline_white_24dp
};
String[] indexText = getResources().getStringArray(R.array.indexText);
String[] englishText = getResources().getStringArray(R.array.englishText);
seekBar = findViewById(R.id.seekBar);
btnPlay = findViewById(R.id.btnPlay);
btnNxt = findViewById(R.id.btnNxt);
Button btnPv = findViewById(R.id.btnPv);
Button btnFF = findViewById(R.id.btnFF);
Button btnFB = findViewById(R.id.btnFB);
btnRep = findViewById(R.id.btnRep);
btnShuf = findViewById(R.id.btnShuf);
btnAto = findViewById(R.id.btnAuto);
elapsedTimeLabel = findViewById(R.id.elapsedTimeLabel);
remainingTimeLabel = findViewById(R.id.remainingTimeLabel);
titleTextView = findViewById(R.id.titleTextView);
indexImageView = findViewById(R.id.iconImageView);
mySongAdapter = new SongAdapter(this, indexText, englishText, iconImage);
lv.setAdapter(mySongAdapter);
}catch (NullPointerException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
try {
if (resId == position) {
view.findViewById(R.id.iconImageView).setVisibility(View.VISIBLE);
} else {
view.findViewById(R.id.iconImageView).setVisibility(View.INVISIBLE);
}
mySongAdapter.notifyDataSetChanged();
lv.setFastScrollEnabled(true);
lv.isScrollingCacheEnabled();
} catch (NullPointerException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
});
实际上,我想实施在这里How to set icon over current playing song from listview in android?中找到的此解决方案
将图标添加到列表视图中使其首先不可见,然后用Java编写代码
if(SongIndex !=position){
Image.setvisibility(View.Invisible)
}
else{
Image.setvisibility(View.Visible)
}
notifydatasetchanged();
我想我做了所有这些,但是在调用notifydatasetchanged()时遇到问题。列表视图没有更新。
非常感谢任何人的帮助或参与。
您好,我开发了Media Player,可以播放原始文件中的歌曲。我有歌曲列表的列表视图。我可以在当前播放的歌曲上绘制一个小图标,但是当我滚动浏览...
RecyclerView
model class
。喜欢