java - 当我打算获取 arrayList 的数据时,如何在第二个活动和 setText 和 Image 中获取这些数据?
问题描述
我使用 ArrayList 制作了一个歌曲列表,我获得了所有信息,可以将其传递给第二个活动并在新页面上打开它。我想要的是当我单击歌曲列表时,它会在新页面中打开,新页面显示歌曲的详细信息和图像。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView_Main=findViewById(R.id.listView_Main);
final Song song1 = new Song("Love Story","Taylor Swift","September 12,2008", "$1.29");
Song song2 = new Song("Lover","Taylor Swift","August 23,2019", "$1.29" );
Song song3 = new Song("I Forgot That You Existed", "Taylor Swift", "August 23,2019", "$1.29");
Song song4 = new Song("The Archer", "Taylor Swift", "August 23,2019", "$1.29");
Song song5 = new Song("I Think He Knows","Taylor Swift", "August 23,2019", "$1.29");
final List<Song> songs = new ArrayList<>();
songs.add(song1);
songs.add(song2);
songs.add(song3);
songs.add(song4);
songs.add(song5);
MainAdapter adapter = new MainAdapter(this, songs);
listView_Main.setAdapter(adapter);
listView_Main.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
Intent intent=new Intent(view.getContext(),SongDetailActivity.class);
intent.putExtra("currentSong",(Serializable) songs.get(i));
startActivity(intent);
}
});
}
但我的问题是在第二个活动中,我不知道如何使用 setText 获取歌曲的细节和图像。因此,我在 String.xml 文件中制作了歌曲的详细信息。如何在第二个活动中获取这些详细信息和图像?另外,我不知道如何在第二个活动中获取歌曲列表的位置,我的意思是我点击了哪首歌的位置,它显示了我点击的那首歌的详细信息。
//这里是歌曲详情的第二个活动。//////
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_song_detail);
textViewSongDetail=findViewById(R.id.textView_SongDetail);
imageViewSongDetail=findViewById(R.id.image_SongDetail);
Song currentSong=(Song)getIntent().getSerializableExtra("currentSong");
}
解决方案
首先确保你已经在你的模型类 Song 中实现了 Serializable。比您的代码可以正常工作。并接收您可以发送的位置 -
intent.putExtra("position", i); // to send
getIntent().getIntExtra("position", -1); //to receive (-1 is default value)
推荐阅读
- jquery - 在 jQuery 中 !clickover.hasClass('navbar-toggler') 是什么意思?
- vim - 为什么 vim 自动缩进工作不一致
- r - 如何根据另一个变量的缺失值返回 ID 列表?
- php - 升级到 PHP 7.4.4 后 Symfony 3.2 内置服务器错误
- android - 如何从不同模块中的一个 Kodein 模块访问实例?
- html - 尝试在 Python 中从 newegg 中抓取价格信息时遇到问题
- terraform - Terraform 替换正则表达式
- java - 在 Java 中的 Selenium 中选择所选 web 元素上方的 div
- python-3.x - 在 Python 3 中使用 solenium 获取匹配表信息
- python - 如何使用 Python 在 GNOME 中将按钮添加到通知托盘