gpt4 book ai didi

java - 在不同的方法中访问和使用自定义对象和 ArrayList
转载 作者:太空宇宙 更新时间:2023-11-04 11:22:34 24 4
gpt4 key购买 nike

我目前正在开发一个应用程序,该应用程序将使用许多对象作为信息持有者(音乐事物 - 艺术家、歌曲、专辑封面图片的 id 以及第二张图片的另一个 id)。

我认为最好创建“Track”类并使用它来创建对象并将它们存储在 ArrayList 中。

我创建了类,创建了列表,但我无法访问它(我想根据当前 Track 对象更改 ImageViews 和 TextViews)。

这是 Track 类:(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.

我只是不能在我的方法中使用对象或数组列表。键入时,“Tracks array”甚至不会显示在 Android Studio 中。 Track 可以,但我无法访问 Array 中的位置。

总而言之,是否有其他方法可以在其他类和方法中使用我的对象(ArrayList)项?

感谢您提前提供的帮助。

最佳答案

创建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);

}
}

关于java - 在不同的方法中访问和使用自定义对象和 ArrayList<Object>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44749118/

24 4 0