【问题标题】:Cursor only retrieving one item, not all items光标只检索一个项目,而不是所有项目
【发布时间】:2021-10-20 04:59:51
【问题描述】:

所以我在我的应用程序中使用了 Cursor 从存储中检索所有曲目。问题是它只返回一首曲目而不是所有曲目。代码很完美,没有错误。甚至我也尝试过访问我正在检索和存储所有曲目的 ArrayList。 ArrayList 的大小是 1 而不是很多。我正在附加以下代码:

private void Encrypt() {
    Uri uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
    Cursor cursor = getContentResolver().query(uri, null, null, null, null);
    if(cursor!= null && cursor.moveToFirst()){
        int TrackTitle = cursor.getColumnIndex(MediaStore.Audio.Media.TITLE);
        int Artist = cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST);
        int Path = cursor.getColumnIndex(MediaStore.Audio.Media.DATA);
        do{
            String Tracktitle = cursor.getString(TrackTitle);
            String Trackartist = cursor.getString(Artist);
            String Trackpath = cursor.getString(Path);
            arrayList = new ArrayList<CustomListView>();
            arrayList.add(new CustomListView(R.drawable.none, Tracktitle, Trackartist, Trackpath));

            CustomListViewAdapter customListViewAdapter = new CustomListViewAdapter(this, arrayList);
            tracks.setAdapter(customListViewAdapter);
            tracks.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                    

                }
            });

        }while (cursor.moveToNext());

代码到底有什么问题??

【问题讨论】:

  • 第一次被击中时 cursor.moveToNext() 是否为假?

标签: java android android-cursor


【解决方案1】:

您正在每个循环中创建一个新的ArrayList,将此行移出您的 do-while 循环:

arrayList = new ArrayList<CustomListView>();
do {
   ...

【讨论】:

  • 谢谢。 +1。工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-10-03
  • 2023-03-12
  • 2017-06-02
  • 2013-03-25
  • 2021-06-13
  • 2021-09-28
  • 1970-01-01
相关资源
最近更新 更多