Android - ActivityMainBinding 显示错误 activity

Android - ActivityMainBinding shows me wrong activity

各位。我正在尝试全屏显示折线图 activity。不幸的是我不能那样做。我总能看到我的 activity_main.xml 布局。在 CardView 中,我也有我的线图。在 activity 中一切正常。但是,一旦我通过按钮切换到 activity_details_vitali.xml,我就看不到折线图,只有我的 main_activity。我想我这里的绑定有误。但是,我找不到错误

class DetailsVitali : AppCompatActivity() {

private lateinit var binding: ActivityMainBinding


override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_details_vitali)


    binding = ActivityMainBinding.inflate(layoutInflater)
    setContentView(binding.root)
    setLineChartData()

}


private fun setLineChartData() {
    val linevalues = ArrayList<Entry>()
    linevalues.add(Entry(20f, 0.0F))
    linevalues.add(Entry(30f, 3.0F))
    linevalues.add(Entry(40f, 2.0F))
    linevalues.add(Entry(50f, 1.0F))
    linevalues.add(Entry(60f, 8.0F))
    linevalues.add(Entry(70f, 10.0F))
    linevalues.add(Entry(80f, 1.0F))
    linevalues.add(Entry(90f, 2.0F))
    linevalues.add(Entry(100f, 5.0F))
    linevalues.add(Entry(110f, 1.0F))
    linevalues.add(Entry(120f, 20.0F))
    linevalues.add(Entry(130f, 40.0F))
    linevalues.add(Entry(140f, 50.0F))

    val linedataset = LineDataSet(linevalues, "First")
    //We add features to our chart
    linedataset.color = resources.getColor(R.color.purple_200)

    linedataset.circleRadius = 5f
    linedataset.setDrawFilled(true)
    linedataset.valueTextSize = 10F
    linedataset.fillColor = resources.getColor(R.color.purple_500)
    linedataset.setMode(LineDataSet.Mode.CUBIC_BEZIER);

    //We connect our data to the UI Screen
    val data = LineData(linedataset)

    binding.getTheGraph.data = data
    binding.getTheGraph.setBackgroundColor(resources.getColor(R.color.white))
    binding.getTheGraph.animateXY(2000, 2000, Easing.EaseInCubic)

}

布局

<?xml version="1.0" encoding="utf-8"?>
LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
tools:context=".DetailsVitali">


<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <androidx.cardview.widget.CardView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:padding="10dp"
        app:cardCornerRadius="10dp"
        android:elevation="20dp"
        android:layout_gravity="center_horizontal">

        <com.github.mikephil.charting.charts.LineChart
            android:id="@+id/graphDetail"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.0"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />

    </androidx.cardview.widget.CardView>
 </LinearLayout>

</LinearLayout>

编辑

而且我也无法在 DetailsVitali.class 中访问我的折线图的 ID。 binding.ID.data = 数据是ID 来自activity_main.xml.

根据你的评论,你想要的布局在 activity_details_vitali.xml 中定义,你应该加载 ActivityDetailsVitaliBinding,而不是 ActivityMainBinding

正如@ARiF 所提到的,您可以删除对 setContentView 的第一次调用,因为您正在用对 setContentView.

的第二次调用覆盖它