NullPointerException, когда я использую startactivity в kotlin (сбой) - PullRequest
0 голосов
/ 12 апреля 2020

Я хочу перенести «детальную» активность при нажатии кнопки. но при нажатии кнопки приложение (?) зависло. Я посмотрел на inte rnet, но не смог найти ответ.

Что мне делать?

(MainActivity.kt) код

package com.example.practice

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import com.example.practice.dataclass.*
import kotlinx.android.synthetic.main.activity_main.*
import android.content.Intent
import com.example.practice.detail
import kotlinx.android.synthetic.main.activity_detail.*

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {

        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        button3.setOnClickListener {
            val i = Intent(this, detail::class.java)!!
            startActivity(i)

        }

    }
}

logcat

2020-04-12 19:09:39.388 13201-13201/com.example.practice E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.practice, PID: 13201
    java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Class java.lang.Object.getClass()' on a null object reference
        at com.example.practice.MainActivity$onCreate$1.onClick(MainActivity.kt:18)
        at android.view.View.performClick(View.java:7350)
        at android.view.View.performClickInternal(View.java:7327)
        at android.view.View.access$3600(View.java:807)
        at android.view.View$PerformClick.run(View.java:28166)
        at android.os.Handler.handleCallback(Handler.java:907)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:216)
        at android.app.ActivityThread.main(ActivityThread.java:7464)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:549)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:955)

Манифест

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.practice">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.AppCompat">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".detail"></activity>
    </application>

ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ 101 ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ ㅤ 101

1 Ответ

0 голосов
/ 12 апреля 2020

Ваш слушатель нажатия кнопки должен выглядеть следующим образом:

  button3.setOnClickListener {
            val i = Intent(this@MainActivity, detail::class.java)
            startActivity(i)

        }

, где DetailActivity - это ваше следующее действие, которое вы хотите выполнить после нажатия button3

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...