我目前正在开发一个应用程序,它将使用许多对象作为信息持有者(音乐事物 - 艺术家,歌曲,专辑封面img的id,以及第二个img的另一个id)。
我决定创建" Track" class并使用它来创建对象并将它们存储在ArrayList中。
我创建了这个类,我创建了列表,但是我在访问它时遇到了麻烦(我想根据当前的Track对象更改ImageViews和TextViews)。
以下是曲目类:( Track.java分开)
public class Track {
private String mNameArtist;
private String mNameTrack;
private int mTabResource;
private int mCoverResource;
public Track(String nameArtist, String nameTrack, int tabResourceId, int coverResourceId){
mNameArtist = nameArtist;
mNameTrack = nameTrack;
mTabResource = tabResourceId;
mCoverResource = coverResourceId;
}
public String getArtistName() {
return mNameArtist;
}
public String getTrackName() {
return mNameTrack;
}
public int getTabResourceId() {
return mTabResource;
}
public int getCoverResourceID() {
return mCoverResource;
}}
以及这里的ArrayList声明:( PlayActivity.java,在onCreate方法中)
ArrayList<Track> Tracks = new ArrayList<Track>();
Tracks.add(new Track("Artist Name", "Track Name", R.drawable.tabtemplate, R.drawable.testcover));
Tracks.add(new Track("Pink Floyd", "Comfortably Numb Solo 1", R.drawable.CNS1Tab, R.drawable.pink_floyd_the_wall));
还有更多职位,但你明白了。
到目前为止,一切似乎都很好。
当我想在另一个方法中访问它时(即使在同一个PlayActivity.java中)没有任何反应或者我看到错误。我尝试了许多不同的方法,但每一个都失败了。例如:
Track.getTabResource(); // can't even use the method.
Tracks.get(3); // does not work as well.
我只是不能在我的方法中使用对象或arraylist。 &#34;曲目阵列&#34;在打字时甚至不会出现在Android Studio中。跟踪确实如此,但我无法从Array访问位置。
总结一下,还有其他方法可以在其他类和方法中使用我的Objects(ArrayList)项吗?
提前感谢您的帮助。
答案 0 :(得分:0)
将List创建为实例变量,并通过该类的Object进行访问。
public class PlayActivity {
List<Track> tracks = new ArrayList<Track>();
public void onCreate() {
tracks.add(new Track("Artist Name", "Track Name", R.drawable.tabtemplate, R.drawable.testcover));
tracks.add(
new Track("Pink Floyd", "Comfortably Numb Solo 1", R.drawable.CNS1Tab, R.drawable.pink_floyd_the_wall));
}
public List<Track> getAllTracks() {
return Collections.unmodifiableList(tracks);
}
public Track getTrack(int index) {
return tracks.get(index);
}
}