kotlin 当我点击图像按钮时,我的应用程序崩溃[复制]

cld4siwp  于 2023-01-02  发布在  Kotlin
关注(0)|答案(1)|浏览(114)
    • 此问题在此处已有答案**:

(23个答案)
昨天关门了。
我的应用程序在点击图片按钮时崩溃了,但我不知道为什么会这样,因为我是安卓应用程序开发的新手。我不知道如何使用intent。告诉我任何网络或youtube频道都可以用最好的方式学习安卓应用程序开发。
activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
<TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/img"
        android:textColor="@color/purple_700"
        android:textStyle="bold"
        android:textSize="45sp"
        android:layout_marginStart="82dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toTopOf="parent"/>
<ImageButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" app:srcCompat="@drawable/dr1" android:layout_alignParentStart="true"
        android:layout_marginStart="88dp" android:layout_alignParentTop="true" android:layout_marginTop="87dp"
        android:id="@+id/imageButton" android:layout_centerHorizontal="true"/>
     <ImageButton
        android:layout_width="231dp"
        android:layout_height="316dp" app:srcCompat="@drawable/dr2" android:layout_alignParentStart="true"
        android:layout_marginStart="98dp" android:layout_alignParentBottom="true"
        android:layout_marginBottom="61dp" android:id="@+id/imageButton2" android:layout_centerHorizontal="true"/>

    </RelativeLayout>`

我认为我没有正确使用意图,如果这是真正的请评论问题的意图
Mainactivity.kt

package com.dualact.picvew

import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.widget.ImageButton

class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
val mb1 : ImageButton = findViewById(R.id.imageButton)
val mb2 : ImageButton = findViewById(R.id.imageButton2)
    mb1.setOnClickListener(){
        val pic = Intent(this, PicviewActivity::class.java)
        startActivity(pic)
    }
    mb2.setOnClickListener{
        val pic = Intent(this, PicviewActivity::class.java)
        startActivity(pic)
    }
}
}

picview.xml

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

<ImageView
        android:layout_width="405dp"
        android:layout_height="match_parent" app:srcCompat="@drawable/dr1" android:layout_alignParentStart="true"
        android:layout_marginStart="6dp" android:layout_alignParentTop="true" android:layout_marginTop="0dp"
        android:id="@+id/imageview"/>
</RelativeLayout>

Picviewactivity.kt

package com.dualact.picvew

  import android.content.Intent
  import androidx.appcompat.app.AppCompatActivity
  import android.os.Bundle
  import android.widget.ImageView

class PicviewActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    val mv:ImageView= findViewById(R.id.imageview)
    setContentView(R.layout.picview);
}
}
9cbw7uwe

9cbw7uwe1#

问题出在您的PreviewActivity中,您应该在获取视图之前调用setContentView。按如下所示更改PreviewActivity的onCreate()

package com.dualact.picvew

import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.ImageView

class PicviewActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.picview);
val mv:ImageView= findViewById(R.id.imageview)

 }
}

相关问题