我在我的 Android 回收站视图中没有看到 mp3 文件名,而是看到了他们的链接

Posted

技术标签:

【中文标题】我在我的 Android 回收站视图中没有看到 mp3 文件名,而是看到了他们的链接【英文标题】:I am not seeing mp3 files name in my Android recycler view, instead I am seeing their links 【发布时间】:2019-09-04 12:20:45 【问题描述】:

在我的 android 回收器视图中,我没有看到我想从 firebase 实时数据库中检索的 mp3 文件名。相反,我看到的是 mp3 链接。如何纠正这个问题?

我在 Firebase 文件存储中上传了一些 mp3 文件,这些 mp3 文件链接已添加到我的 Firebase 实时数据库中。当我在 Android 回收器视图中检索文件及其描述时,我得到了 mp3 文件的链接。但不是文件名。

其中包含 2 个文本视图的卡片视图的 XML 代码:

<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_
    android:layout_>

    <LinearLayout
        android:layout_
        android:layout_
        android:orientation="vertical"
        android:background="#b7c8e9"
        >

        <TextView
            android:layout_
            android:layout_
            android:text="song_file_name"
            android:id="@+id/song_name"/>
        <TextView
            android:layout_
            android:layout_
            android:text="song_description"
            android:id="@+id/song_desc"/>

    </LinearLayout>

</android.support.v7.widget.CardView>

查看持有者java代码:

import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.TextView;


public class SongViewHolder extends RecyclerView.ViewHolder 

    View mView;

    public SongViewHolder(View itemView) 
        super(itemView);
        mView = itemView;
    

    public void setDetails(Context ctx, String song, String description)
        TextView mSongTv = mView.findViewById(R.id.song_name);
        TextView mSongDescTv = mView.findViewById(R.id.song_desc);

        mSongTv.setText(song);
        mSongDescTv.setText(description);
    



@Override
    protected void onStart() 
        super.onStart();
        FirebaseRecyclerAdapter<SongModel, SongViewHolder> firebaseRecyclerAdapter =
                new FirebaseRecyclerAdapter<SongModel, SongViewHolder>(
                        SongModel.class,
                        R.layout.song_row,
                        SongViewHolder.class,
                        mRef
                ) 
                    @Override
                    protected void populateViewHolder(SongViewHolder viewHolder, SongModel model, int position) 

                        viewHolder.setDetails(getApplicationContext(), model.getSong(), model.getDescription());
                    
                ;
        mrecyclerView.setAdapter(firebaseRecyclerAdapter);

    

我还为歌曲和描述字段创建了 getter setter。

我需要显示 mp3 歌曲名称。不是它的链接,因为稍后我需要单击它们并播放。但我在回收站视图输出中看到了 mp3 链接。

DB Structure

Output coming with files link

【问题讨论】:

你好 Shivaraj Sajjan,当你想要存储数据(描述和歌曲)时,你需要存储歌曲的名称。我的意思是当你想要存储数据时,你也需要包含歌曲的名称。 您会看到歌曲名称和网址,对吧?有什么问题?请回复@AlexMamo @AlexMamo 我只想要原始文件名的 mp3 歌曲列表。这样我就可以添加 onclick 监听器和媒体播放器来进一步播放这些歌曲。 【参考方案1】:

您的代码没有问题。数据库中的歌曲字段具有歌曲 URL。因此 URL 会显示在您的 recyclerView 中。您也可以将您的 mp3 元数据(例如艺术家姓名等)添加到您的数据库中。之后,您可以根据需要显示它们。

【讨论】:

我只想要原始文件名的 mp3 歌曲列表。这样我就可以添加 onclick 监听器和媒体播放器来进一步播放这些歌曲

以上是关于我在我的 Android 回收站视图中没有看到 mp3 文件名,而是看到了他们的链接的主要内容,如果未能解决你的问题,请参考以下文章

回收站视图位置

在 Android 回收站视图中重新排序项目后,位置未更新

如何将按钮放在回收站视图的顶部?

使用回收视图时无法在Android模拟器中看到应用栏

片段在我的回收站视图中表现得很奇怪

努力在我的 Android Studio 项目中获取 Android 视图