1. ホーム
  2. android

[解決済み] Kotlin Android 新しいアクティビティを開始する

2022-08-10 18:03:13

質問

Androidで別のアクティビティを開始したいのですが、このエラーが表示されます。

コンストラクタの呼び出しを指定してください。分類子 'Page2' はコンパニオンオブジェクトを持ちません。

をインスタンス化した後 Intent クラスをインスタンス化した後です。このエラーを修正するにはどうしたらよいでしょうか?私のコード

class MainActivity : AppCompatActivity() {

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

    fun buTestUpdateText2 (view: View) {
        val changePage = Intent(this, Page2) 
        // Error: "Please specify constructor invocation; 
        // classifier 'Page2' does not have a companion object"

        startActivity(changePage)
    }

}

どのように解決するのですか?

を開始するには Activity を開始するために、Java では Intent(this, Page2.class) を定義する必要があります。 Context を最初のパラメータに、目的クラスを2番目のパラメータに定義します。従って Intent メソッドによると、ソースコード -

 public Intent(Context packageContext, Class<?> cls)

ご覧の通り、私たちはパスしなければなりません。 Class<?> の型を第2パラメータで指定します。

書き込みによる Intent(this, Page2) クラスをパスすることを指定したことはなく、パスしようとしている。 class という型があり、これは受け入れられません。

使用方法 ::class.java の代替となるものです。 .class をkotlinで作成しました。以下のコードを使用してください。 Activity

Intent(this, Page2::class.java)

val intent = Intent(this, NextActivity::class.java)
// To pass any data to next activity
intent.putExtra("keyIdentifier", value)
// start your next activity
startActivity(intent)