質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

Android Widget

ホームスクリーンウィジェット、またはAndroidアプリケーションのスクリーン上で使用される一般的なユーザインタフェース要素に関連することを指します。

Q&A

解決済

1回答

1777閲覧

Kotlin onCreateをオーバーライドできない

kokokokokoko

総合スコア0

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

Android Widget

ホームスクリーンウィジェット、またはAndroidアプリケーションのスクリーン上で使用される一般的なユーザインタフェース要素に関連することを指します。

0グッド

0クリップ

投稿2021/07/16 11:39

編集2021/07/17 02:12

前提・実現したいこと

・AndroidStudioにてウィジェットアプリを作成
・Buttonを押されたときに指定した動作を行いたい。

発生している問題・エラーメッセージ

問題 ・Buttonを押したときの設定を行いたいため onCreate を記述しようとしたが overrideできない とエラーがでて進まない。 ・overrideをAppWidgetProvider直下に配置しても解決できない。 ・override fun onCreate(savedInstanceState: Bundle){ の最後尾 Bundleを Bundle? に変更すると   'onCreate' overrides nothingは消える   Unresolved reference: onCreateは消えない エラーメッセージ 'onCreate' overrides nothing Unresolved reference: onCreate

該当のソースコード

kotlin

1コードの表示(ブロック) 2package com.test.testkwidget.clock 3 4import android.appwidget.AppWidgetManager 5import android.appwidget.AppWidgetProvider 6import android.content.Context 7import android.content.Intent 8import android.os.Bundle 9import android.widget.RemoteViews 10 11class Clock : AppWidgetProvider() { 12 override fun onUpdate(context: Context, appWidgetManager: AppWidgetManager, appWidgetIds: IntArray) { 13 // There may be multiple widgets active, so update all of them 14 for (appWidgetId in appWidgetIds) { 15 updateAppWidget(context, appWidgetManager, appWidgetId) 16 } 17 } 18 19 override fun onCreate(savedInstanceState: Bundle){ 20 super.onCreate(savedInstanceState) 21 setContentView(R.layout.clock) 22 } 23 24 override fun onEnabled(context: Context) { 25 // Enter relevant functionality for when the first widget is created 26 } 27 28 override fun onDisabled(context: Context) { 29 // Enter relevant functionality for when the last widget is disabled 30 } 31 32 override fun onReceive(context: Context?, intent: Intent?) { 33 super.onReceive(context, intent) 34 } 35 36}

gradle

1// Top-level build file where you can add configuration options common to all sub-projects/modules. 2buildscript { 3 ext.kotlin_version = "1.4.32" 4 repositories { 5 google() 6 jcenter() 7 } 8 dependencies { 9 classpath "com.android.tools.build:gradle:4.1.3" 10 classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" 11 12 // NOTE: Do not place your application dependencies here; they belong 13 // in the individual module build.gradle files 14 } 15} 16 17allprojects { 18 repositories { 19 google() 20 jcenter() 21 } 22} 23 24task clean(type: Delete) { 25 delete rootProject.buildDir 26} 27

gradle

1# gradle(Module) 2plugins { 3 id 'com.android.application' 4 id 'kotlin-android' 5} 6 7android { 8 compileSdkVersion 30 9 buildToolsVersion "30.0.3" 10 11 defaultConfig { 12 applicationId "com.test.clockwidget.mikuclock" 13 minSdkVersion 21 14 targetSdkVersion 30 15 versionCode 1 16 versionName "1.0" 17 18 testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" 19 } 20 21 buildTypes { 22 release { 23 minifyEnabled false 24 proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' 25 } 26 } 27 compileOptions { 28 sourceCompatibility JavaVersion.VERSION_1_8 29 targetCompatibility JavaVersion.VERSION_1_8 30 } 31 kotlinOptions { 32 jvmTarget = '1.8' 33 } 34} 35 36dependencies { 37 38 39 implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" 40 implementation 'androidx.core:core-ktx:1.6.0' 41 implementation 'androidx.appcompat:appcompat:1.3.0' 42 implementation 'com.google.android.material:material:1.4.0' 43 testImplementation 'junit:junit:4.+' 44 androidTestImplementation 'androidx.test.ext:junit:1.1.3' 45 androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' 46} 47
kotlin 1.4.32

試したこと

ここに問題に対して試したことを記載してください。
・overrideをAppWigdetProviderを継承しているクラスに配置
・override fun onCreate(savedInstanceState: Bundle){ の Bundleを Bundle? に変更

補足情報(FW/ツールのバージョンなど)

Android Studio 4.1.3

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

自己解決しました
AppWigdetを継承したクラスに記載したためのエラーでした。

投稿2021/07/17 02:32

kokokokokoko

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問