java - 在不同的方法中访问和使用自定义对象和 ArrayList<Object>

标签 java class arraylist methods

我目前正在开发一个应用程序,该应用程序将使用许多对象作为信息持有者(音乐事物 - 艺术家、歌曲、专辑封面图片的 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/

相关文章:

java - 用命名空间替换 XSLT?

c# - 什么时候结构太大了?

c# - 对空类使用方法

android - java.lang.IndexOutOfBoundsException : Invalid index 2, 大小为 2

Java:如何让扫描仪仅匹配第一次出现的情况,如果之前已匹配过则跳过

java - 将对象添加到数组列表 ArrayList<Fitness>

java - 在 Java 中删除字符串中第一个单词的最佳方法

java - 二维数组求和

java - 错误: package com.lapism.searchview.view does not exist

python - 派生时自动类装饰(或验证)