android:android studio 对java/kotlin做互相转换
一,java转kotlin
code->Convert Java File to Kotlin File
如图:

弹出提示,需要在项目中配置kotlin

确认

提示一些需要修正

二,一个例子:
package com.example.okdemo1.activity
import android.os.Bundle
import android.util.Log
import android.view.MenuItem
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity
import androidx.fragment.app.Fragment
import androidx.viewpager2.widget.ViewPager2
import androidx.viewpager2.widget.ViewPager2.OnPageChangeCallback
import com.example.okdemo1.R
import com.example.okdemo1.adapter.FragAdapter
import com.example.okdemo1.fragment.Cate1Fragment
import com.example.okdemo1.fragment.Cate2Fragment
import com.example.okdemo1.fragment.Cate3Fragment
import com.google.android.material.bottomnavigation.BottomNavigationView
import com.google.android.material.navigation.NavigationBarView
class Bottom2Activity : AppCompatActivity() {
private val fragmentList: MutableList<Fragment?> = ArrayList<Fragment?>() //fragment的列表
private var vp_content: ViewPager2? = null //viewpager2
private var bottomNavigationView: BottomNavigationView? = null //底部导航栏
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
this.enableEdgeToEdge()
setContentView(R.layout.activity_bottom2)
//填充viewpager2的内容
//添加fragment到列表
fragmentList.add(Cate1Fragment())
fragmentList.add(Cate2Fragment())
fragmentList.add(Cate3Fragment())
//创建adapter
val viewPagerAdapter = FragAdapter(this, fragmentList) //创建适配器对象
//得到viewpager,并为它设置adapter
vp_content = findViewById<ViewPager2>(R.id.viewpager2bottom)
vp_content!!.setAdapter(viewPagerAdapter) // 设置翻页视图的适配器
vp_content!!.setCurrentItem(0)
bottomNavigationView = findViewById<BottomNavigationView>(R.id.nav_view)
//底部导航栏的处理
//重点 设置 bottomNavigationView 的item 的点击事件 设置viewPager2的联动
bottomNavigationView!!.setOnItemSelectedListener(object :
NavigationBarView.OnItemSelectedListener {
override fun onNavigationItemSelected(item: MenuItem): Boolean {
val itemId = item.getItemId()
Log.d("click", "当前点击了item:" + itemId)
if (itemId == R.id.navigation_home) {
// 处理逻辑
vp_content!!.setCurrentItem(0)
} else if (itemId == R.id.navigation_dashboard) {
// 其他逻辑
vp_content!!.setCurrentItem(1)
} else {
// 默认情况
vp_content!!.setCurrentItem(2)
}
return true
}
})
//重点 实现viewpager2滑动的时候 联动 bottomNavigationView的selectedItem
vp_content!!.registerOnPageChangeCallback(object : OnPageChangeCallback() {
override fun onPageSelected(position: Int) {
super.onPageSelected(position)
when (position) {
0 -> bottomNavigationView!!.setSelectedItemId(R.id.navigation_home)
1 -> bottomNavigationView!!.setSelectedItemId(R.id.navigation_dashboard)
2 -> bottomNavigationView!!.setSelectedItemId(R.id.navigation_notifications)
}
}
})
}
}
从java转换后可以正常运行
浙公网安备 33010602011771号