gpt4 book ai didi

java - 如何在同一个类的另一个方法中从 "onCreate()"访问 Arraylist 变量?

转载 作者:太空宇宙 更新时间:2023-11-04 13:48:09 25 4
gpt4 key购买 nike

我想访问全局声明的 Arraylist 变量 (mySongs),并在另一个名为 btnNext() 的方法的 onCreate() 方法中使用。该变量的值是使用 Intent 从另一个类获取的。

但是我无法在 btnNext() 方法中获取该变量的值。

Intent i = getIntent();
Bundle b = i.getExtras();
mySongs = (ArrayList) b.getParcelableArrayList("songlist");
position = b.getInt("pos",0);

此变量出现空指针异常。在日志中检查时,它在方法中显示“null”,而在 btnNext() 方法外部检查日志时,它工作正常。

public void btnNext(){
Log.d("DATA", "songs"+mySongs);

if(isRepeat==true || isShuffle==true)
{
isRepeat = false;
btnRepeat.setImageResource(R.drawable.btn_repeat_default);

isShuffle = false;
btnShuffle.setImageResource(R.drawable.btn_shuffle_default);
}
mp.stop();
mp.release();
position = (position+1) % mySongs.size();
Log.d("DATA", "p"+position);
u = Uri.parse(mySongs.get(position).toString());
mp = MediaPlayer.create(getApplicationContext(),u);
displaySongName(position);
mp.start();
btnPlay.setImageResource(R.drawable.btn_pause);
//Toast.makeText(this, "Method called", Toast.LENGTH_SHORT).show();
Log.d("DATA", "p");
}

可能是什么问题?

最佳答案

替换这个

mySongs = (ArrayList) b.getParcelableArrayList("songlist"); 

有了这个

mySongs = new ArrayList<Object>(b.getParcelableArrayList("songlist"));

关于java - 如何在同一个类的另一个方法中从 "onCreate()"访问 Arraylist 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30615086/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com