如何将Android Kotlin代码转为Java?请求转换指定MainActivity.kt代码
转换后的MainActivity Java代码
没问题,我帮你把这段Kotlin代码转换成可读性强的Java版本,同时梳理一下转换过程中的关键对应点,方便你理解:
关键转换说明:
- Kotlin的
lateinit属性:对应Java中先声明成员变量,再在onCreate方法中完成初始化 - Kotlin的lambda点击事件:转换成Java的匿名内部类
View.OnClickListener实现 - Kotlin的属性访问(如
sv.currentValue):对应Java中自动生成的getter/setter方法(getCurrentValue()/setCurrentValue()) - Kotlin的
listOf集合:转换成Java的int数组,更贴合Java的常用写法
完整Java代码:
package com.bendaschel.sevensegmentview.example; import android.graphics.Color; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.LayoutInflater; import android.view.View; import android.widget.LinearLayout; import com.bendaschel.example.R; import com.bendaschel.sevensegmentview.SevenSegmentView; public class MainActivity extends AppCompatActivity { private SevenSegmentView sv; private LinearLayout colorPicker; private final int[] colors = {Color.GREEN, Color.BLUE, Color.RED, Color.MAGENTA, Color.YELLOW}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 初始化七段数码管视图 sv = findViewById(R.id.display); sv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { int next = (sv.getCurrentValue() + 1) % 10; sv.setCurrentValue(next); } }); // 初始化颜色选择器区域 colorPicker = findViewById(R.id.color_picker); LayoutInflater inflater = getLayoutInflater(); for (int color : colors) { View button = inflater.inflate(R.layout.color_picker_item, colorPicker, false); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { sv.setOnColor(color); // 计算半透明的熄灭状态颜色 int red = Color.red(color); int green = Color.green(color); int blue = Color.blue(color); sv.setOffColor(Color.argb(50, red, green, blue)); } }); button.setBackgroundColor(color); colorPicker.addView(button); } } }
这段代码和原Kotlin代码功能完全一致:点击七段数码管会循环切换0-9的数字,点击颜色选择器的色块会切换数码管的点亮颜色,同时自动设置对应半透明的熄灭状态颜色。
内容的提问来源于stack exchange,提问作者rachna
相关产品推荐
相关产品推荐

