首页 > 解决方案 > 数组适配器和 ListView 显示错误数据

问题描述

附图是两个列表的样子我正在尝试从 ArrayLists 获取数据的多个活动。我已经编写了布局文件和 java 文件,但现在其中一个活动正在显示另一个活动的 ArrayList。

没有错误,所以我不太确定我做错了什么。

第一个数组和适配器:

public class AlbumsActivity extends  Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_albums);

    ArrayList<String> albums = new ArrayList<>();
    albums.add("Umqele");
    albums.add("We are friends");
    albums.add("Isiphithiphiti");
    albums.add("Scorpion kings");
    albums.add("Red");
    albums.add("Different world");
    albums.add("Irue");
    albums.add("Dirty Computer");
    albums.add("Anti");
    albums.add("Love Girls");

    ArrayAdapter<String>  albumsAdapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, albums);

    ListView albumView = findViewById(R.id.albums);

    albumView.setAdapter(albumsAdapter);
}

第二:

 public class PlaylistActivity extends Activity {
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_playlists);

    ArrayList<String> lists = new ArrayList<>();
    lists.add("House");
    lists.add("MorningJams");
    lists.add("SundayTunes");
    ArrayAdapter<String> listAdapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, lists);

    ListView listView = findViewById(R.id.playlist);

    listView.setAdapter(listAdapter);

}

标签: javaandroid

解决方案


这是您的代码的输出。它按预期运行。意味着每个活动中的不同数据。

主要活动

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        String a[] = new String[4];

        playlist = findViewById(R.id.open_playlist_bt);
        album = findViewById(R.id.open_albumlist_bt);

        playlist.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                startActivity(new Intent(MainActivity.this, PlaylistActivity.class));
            }
        });

        album.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                startActivity(new Intent(MainActivity.this, AlbumsActivity.class));
            }
        });
    }

相册活动

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        String a[] = new String[4];

        ArrayList<String> albums = new ArrayList<>();
        albums.add("Umqele");
        albums.add("We are friends");
        albums.add("Isiphithiphiti");
        albums.add("Scorpion kings");
        albums.add("Red");
        albums.add("Different world");
        albums.add("Irue");
        albums.add("Dirty Computer");
        albums.add("Anti");
        albums.add("Love Girls");

        ArrayAdapter<String> albumsAdapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, albums);

        ListView albumView = findViewById(R.id.album);

        albumView.setAdapter(albumsAdapter);

    }

    public void openPlasylistActivity(View view) {

        startActivity(new Intent(this, PlaylistActivity.class));
    }

播放列表活动

public class PlaylistActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        ArrayList<String> lists = new ArrayList<>();
        lists.add("House");
        lists.add("MorningJams");
        lists.add("SundayTunes");
        ArrayAdapter<String> listAdapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, lists);

        ListView listView = findViewById(R.id.play_list);

        listView.setAdapter(listAdapter);
    }
}


推荐阅读