U
Utente 399201
Ospite
Buonasera a tutti.
Sto realizzando quest'app con Android studio che in pratica consiste in una Lyric App con all'interno tutti i testi dei Verdena e, per realizzare il layout delle Activity , ho utilizzato dei RecyclerView (sia per l'Activity dove vengono mostrati tutti gli album sia in quello in cui ci sono tutti i brani).
Il problema è che, avendo una sola Activity per i testi, stavo provando (fallendo miseramente) a passare i testi tramite una classe Canzone, per poi effettuare nell'Activity dei testi un setText sulla TextView. Qualcuno riesce a darmi una mano?
Activity di un album
Classe RecyclerView Canzoni
Classe Canzoni
Activity dei testi
Sto realizzando quest'app con Android studio che in pratica consiste in una Lyric App con all'interno tutti i testi dei Verdena e, per realizzare il layout delle Activity , ho utilizzato dei RecyclerView (sia per l'Activity dove vengono mostrati tutti gli album sia in quello in cui ci sono tutti i brani).
Il problema è che, avendo una sola Activity per i testi, stavo provando (fallendo miseramente) a passare i testi tramite una classe Canzone, per poi effettuare nell'Activity dei testi un setText sulla TextView. Qualcuno riesce a darmi una mano?
Activity di un album
Java:
package com.example.verdenalyrics;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import android.os.Bundle;
import java.util.ArrayList;
import java.util.List;
public class CanosEpActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_canos_ep);
RecyclerView dataList = findViewById(R.id.dataList);
List<String> titles = new ArrayList<>();
List<String> testo = new ArrayList<>();
titles.add("Caños");
titles.add("Malaga");
titles.add("L'ora è buia");
titles.add("Párabellium");
titles.add("His latest flame (Marie’s the name)");
titles.add("Fluido");
testo.add("Peggio di noi\nNon si può stare, credimi\nL'alta marea\nCi porterà via, credimi\n\nTu mi assordi, come fai?\nTi subirò\nNon torneremo più\nIt's true\n\nDicono che\nTutto è sbagliato\nE parlano\nLingue di bue\nUn pasto per due\nParlami\n\nTu mi asciugherai\nGiuro, lo fai\nNon torneremo più\nIt's true\n\\nSeven\nSeven\nÈ il numero\nDegli alberi\nDio solo sa\nSe questa città\nHa alberi\n\nMa che importa\nTu mi fai\nMi brucerò\nNon torneremo più\n\n");
testo.add("[Strumentale]");
testo.add("Tu non puoi\nTu non lo fai\nMa sei qui\nOramai\nSembri giù\nVuoi di più\nTu mi affliggerai!\n\nC'è uno squarcio su di lei\nOra è tardi, io dovrei\nIn un bar\nFra di noi\nTi convincerò!\n\nNon sei più\nNon sarai mai\nCome vuoi\nTu lo sai\nNulla in più\nD'ora in poi\nTu mi affliggerai!\n\nC'è uno squarcio su di lei\nOra e sempre io dovrei\nIn un bar\nFra di noi\nTi convincerò!\n\nCome è buia\nL'ora è buia\nSarà dura\nL'ora è buia\nÈ buia\n\nTu non puoi\nTu non lo fai\nMa sei qui\nOramai\nSembri giù\nVuoi di più\nTu non fingerai\n\nC'è uno squarcio su di lei\nOra e sempre io dovrei\nIn un bar\nFra di noi\nTi convincerò\nTi convincerò\n\n");
testo.add("[Strumentale]");
testo.add("A very old friend came by today\nBecause he was telling everyone in town\nAbout the love that he just found\nAnd Marie's the name of his latest flame\n\nThough I smiled the tears inside were a-burning\nI wished him luck and then he said goodbye\nHe was gone but still his words kept returning\nWhat else was there for me to do but cry\n\nHe talked and talked and I heard him say\nThat she had the longest blackest hair\nThe prettiest green eyes anywhere\nAnd Marie's the name of his latest flame\n\nWould you believe that yesterday\nThis girl was in my arms and swore to me\nShe'd be mine eternally\nAnd Marie's the name of his latest flame\n\n");
testo.add("Paradiso enorme\nNessuno può capirmi più\nE non so darmi più risposte\nGesù\n\nAl buio il fiume non c'è\nIl fiume al buio non si vede\nIncolla i fiori nella sabbia\nGesù\nGesù\nGesù\nGesù\n\nOra è meglio, ora nuoto\nSicuramente come non crederai\nAh, ah\n\n");
AdapterSong adapter = new AdapterSong(this, titles, testo);
GridLayoutManager gridLayoutManager = new GridLayoutManager(this,1,GridLayoutManager.VERTICAL,false);
dataList.setLayoutManager(gridLayoutManager);
dataList.setAdapter(adapter);
}
}
Classe RecyclerView Canzoni
Java:
package com.example.verdenalyrics;
import android.content.Context;
import android.content.Intent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import org.jetbrains.annotations.NotNull;
import java.util.List;
public class AdapterSong extends RecyclerView.Adapter<AdapterSong.ViewHolder>
{
Context context;
LayoutInflater inflater;
List<String> titles;
List<String> testo;
Intent intent;
Canzoni canzoni;
public AdapterSong(Context paramContext, List<String> paramList,List<String> testo) {
this.titles = paramList;
this.testo = testo;
this.inflater = LayoutInflater.from(paramContext);
this.context = paramContext;
}
public AdapterSong(Context paramContext, List<String> paramList) {
this.titles = paramList;
this.inflater = LayoutInflater.from(paramContext);
this.context = paramContext;
}
public int getItemCount(){
return this.titles.size();
}
public @NotNull ViewHolder onCreateViewHolder(@NotNull ViewGroup paramViewGroup, int paramInt)
{
View view = inflater.inflate(R.layout.layout_songs,paramViewGroup,false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull @NotNull AdapterSong.ViewHolder holder, int position) {
holder.title.setText(titles.get(position));
}
public class ViewHolder extends RecyclerView.ViewHolder{
TextView title;
public ViewHolder(View paramView) {
super(paramView);
title = itemView.findViewById(R.id.textSong);
paramView.setOnClickListener(paramAnonymousView -> {
/*switch (getAdapterPosition()){ Qua è dove stavo provando a passare i testi
case 0:
canzoni.setTesto(testo.get(0));
break;
}*/
intent = new Intent(context , CanzoniActivity.class);
context.startActivity(intent);
});
}
}
}
Classe Canzoni
Java:
package com.example.verdenalyrics;
public class Canzoni {
private String testo;
public String getTesto() {
return testo;
}
public void setTesto(String testo) {
this.testo = testo;
}
}
Activity dei testi
Codice:
package com.example.verdenalyrics;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Button;
import android.widget.TextView;
public class CanzoniActivity extends AppCompatActivity {
TextView testo;
Button btnAscolta;
Canzoni canzoni;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_canzoni);
testo = findViewById(R.id.TestoCanzone);
btnAscolta = findViewById(R.id.btnAscolta);
testo.setText(canzoni.getTesto());
}
}