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

时间:2019-04-14 08:56:31

标签: android firebase-realtime-database google-cloud-firestore

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

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

卡片视图的XML代码中有2个文本视图:

<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:background="#b7c8e9"
        >

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="song_file_name"
            android:id="@+id/song_name"/>
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            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);

    }

我还为歌曲和描述字段创建了吸气剂设置器。

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

DB Structure

Output coming with files link

1 个答案:

答案 0 :(得分:0)

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