使用kotlin写一个安卓程序。在一个Activity里放置两个Fragment,两个Fragment可以通过左右滑动切换,并且第一个Fragment内容为本地音乐列表,第二个Fragment内容为本地视频列表。
时间: 2024-05-02 10:17:02 浏览: 109
好的,以下是实现的步骤:
1. 创建一个新的 Android Studio 项目,并在 `build.gradle` 文件中添加对 Kotlin 的支持。
2. 在 `activity_main.xml` 中添加一个 `ViewPager` 元素,以及两个 `Fragment` 元素作为其子元素。其中,第一个 `Fragment` 显示本地音乐列表,第二个 `Fragment` 显示本地视频列表。示例代码如下:
```xml
<androidx.viewpager.widget.ViewPager
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="match_parent">
<fragment
android:id="@+id/musicFragment"
android:name="com.example.app.MusicFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<fragment
android:id="@+id/videoFragment"
android:name="com.example.app.VideoFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</androidx.viewpager.widget.ViewPager>
```
3. 在 `MainActivity.kt` 中初始化 `ViewPager`,并为其设置适配器。适配器的实现可以使用 `FragmentPagerAdapter` 或 `FragmentStatePagerAdapter`,这里使用前者。
```kotlin
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val viewPager: ViewPager = findViewById(R.id.viewPager)
viewPager.adapter = MyPagerAdapter(supportFragmentManager)
}
private inner class MyPagerAdapter(fm: FragmentManager) : FragmentPagerAdapter(fm) {
override fun getItem(position: Int): Fragment {
return when (position) {
0 -> MusicFragment()
else -> VideoFragment()
}
}
override fun getCount(): Int {
return 2
}
}
}
```
4. 在 `MusicFragment.kt` 和 `VideoFragment.kt` 中分别实现本地音乐列表和本地视频列表的显示逻辑。这里只给出一个简单的示例代码:
```kotlin
class MusicFragment : Fragment() {
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
return inflater.inflate(R.layout.fragment_music, container, false)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
val listView: ListView = view.findViewById(R.id.listView)
val adapter = ArrayAdapter<String>(requireContext(), android.R.layout.simple_list_item_1)
adapter.addAll("Song 1", "Song 2", "Song 3")
listView.adapter = adapter
}
}
class VideoFragment : Fragment() {
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
return inflater.inflate(R.layout.fragment_video, container, false)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
val listView: ListView = view.findViewById(R.id.listView)
val adapter = ArrayAdapter<String>(requireContext(), android.R.layout.simple_list_item_1)
adapter.addAll("Video 1", "Video 2", "Video 3")
listView.adapter = adapter
}
}
```
5. 运行程序,可以通过左右滑动来切换本地音乐列表和本地视频列表。
阅读全文