前提・実現したいこと
・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
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。