0
class MainActivity : AppCompatActivity() {
    private val mainViewModel: MainActivityViewModel by viewModels()
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        val listener = View.OnClickListener {
            when (it) {
                decreaseValue -> MyView.radius -= 2
                increaseValue -> MyView.radius += 2
                setRed -> MyView.whatColor = 1
                setBlue -> MyView.whatColor = 2
                setYellow -> MyView.whatColor = 3
                setGreen -> MyView.whatColor = 4
                setBlack -> MyView.whatColor = 0
            }
        }
      ...
    }
}

MainActivity.kt

private const val TAG = "MyView"

class MyView(context: Context?) : View(context) {
    var p1 = Paint()
    var p2 = Paint()
    var p3 = Paint()
    var p4 = Paint()
    var p5 = Paint()
    var myData_x = IntArray(30000)
    var myData_y = IntArray(30000)
    var myData_color = IntArray(30000)
    var radiusArray = IntArray(30000)

    companion object {
        var radius = 15
        var whatColor = 0
    }

    var dataNumber = 0
    var mx = 0
    var my = 0
...
}

我的视图.kt

<....MyView
        android:id="@+id/paint_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

我想防止我的数据旋转设备。而不是使用android:configChanges="orientation|keyboardHidden",我想使用 ViewModel。我该怎么做?我要保留的是 mydata_x、mydata_y、mydata_color、var radiusarray。当我将 mydata 变量作为 livedata 传递时,它总是会抛出错误。

4

0 回答 0