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

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

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

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Kotlin

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

Q&A

解決済

1回答

1661閲覧

【Kotlin】AndroidStudio DateFormatのエラー

murata2019

総合スコア5

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Kotlin

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

0グッド

0クリップ

投稿2020/01/10 06:55

編集2020/01/15 03:00

前提・実現したいこと

はじめてのAndroidプログラミング第4版という書籍で勉強しています.
アラームを製作しようとしていますが,以下のエラーがでます.
![イメージ説明]

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

Compilation error. See log for more details Type mismatch: inferred type is CharSequence! but Editable! was expected Unresolved reference: format

該当のソースコード

Kotlin

1package com.example.gomidashihome1 2 3import android.annotation.SuppressLint 4import android.app.AlarmManager 5import android.app.KeyguardManager 6import android.app.PendingIntent 7import android.content.Context 8import android.content.Intent 9import android.icu.text.SimpleDateFormat 10import android.os.Build 11import android.os.Bundle 12import android.view.WindowManager.LayoutParams.* 13import android.widget.Toast 14import androidx.appcompat.app.AppCompatActivity 15import kotlinx.android.synthetic.main.activity_alarm.* 16import java.text.ParseException 17import java.util.* 18import java.lang.IllegalArgumentException 19import java.text.DateFormat 20import java.util.regex.Pattern 21import kotlin.text.format as format1 22 23@Suppress("UNREACHABLE_CODE", "DEPRECATION", "CAST_NEVER_SUCCEEDS") 24//@Suppress("DEPRECATION") 25class alarmActivity : AppCompatActivity(),TimeAlertDialog.Listener 26 ,DatePickerFragment.onDateSelectedListener 27 ,TimePickerFragment.OnTimeSelectedListener { 28 29 override fun getUp() { 30 finish() 31 } 32 33 34 override fun onSelected(year: Int, month: Int, date: Int) { 35 //DateFormat.DateFormat = android.text.format.DateFormat.getDateFormat(applicationContext) 36 //val dateText = DateFormat.format(Calendar.getInstance()) 37 val c = Calendar.getInstance() 38 c.set(year, month, date) 39 dateText.text = android.text.format.DateFormat.format("yyyy/MM/dd", c ) 40 } 41 42 @SuppressLint("SetTextI18n") 43 override fun onSelected(hourOfDay: Int, minute: Int) { 44 45 timeText.text = "%1$02d:%2$02d".format(hourOfDay,minute) 46 } 47 48 override fun onPositiveClick() { 49 finish() 50 } 51 52 53 override fun snooze() { 54 val calendar = Calendar.getInstance() 55 calendar.timeInMillis = System.currentTimeMillis() 56 calendar.add(Calendar.MINUTE,5) 57 setAlarmManager(calendar) 58 finish() 59 } 60 61 62 override fun onCreate(savedInstanceState: Bundle?) { 63 super.onCreate(savedInstanceState) 64 65 if (intent?.getBooleanExtra("onReceive", false) == true) { 66 when { 67 Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1 -> { 68 setShowWhenLocked(true) 69 setTurnScreenOn(true) 70 val keyguardManager = getSystemService(Context.KEYGUARD_SERVICE) as KeyguardManager 71 keyguardManager.requestDismissKeyguard(this, null) 72 } 73 Build.VERSION.SDK_INT >= Build.VERSION_CODES.O -> { 74 window.addFlags( 75 FLAG_TURN_SCREEN_ON or FLAG_SHOW_WHEN_LOCKED 76 ) 77 val keyguardManager = 78 getSystemService(Context.KEYGUARD_SERVICE) as KeyguardManager 79 keyguardManager.requestDismissKeyguard(this, null) 80 } 81 else -> window.addFlags( 82 FLAG_TURN_SCREEN_ON or FLAG_SHOW_WHEN_LOCKED or FLAG_DISMISS_KEYGUARD 83 ) 84 } 85 86 87 val dialog = TimeAlertDialog() 88 dialog.show(supportFragmentManager, "alert_dialog") 89 } 90 91 setContentView(R.layout.activity_alarm) 92 93 setalarm.setOnClickListener { 94 val date = "${dateText.text}${timeText.text}".toDate() 95 when { 96 date != null -> { 97 val calendar = Calendar.getInstance() 98 calendar.time = date 99 setAlarmManager(calendar) 100 Toast.makeText( 101 this, "アラームをセットしました", 102 Toast.LENGTH_SHORT 103 ).show() 104 } 105 else -> { 106 Toast.makeText( 107 this, "日付の形式が正しくありません", 108 Toast.LENGTH_SHORT 109 ).show() 110 } 111 } 112 113 cancelalarm.setOnClickListener { 114 cancelAlarmManager() 115 } 116 117 dateText.setOnClickListener { 118 val dialog = DatePickerFragment() 119 dialog.show(supportFragmentManager, "date_dialog") 120 } 121 timeText.setOnClickListener { 122 val dialog = TimePickerFragment() 123 dialog.show(supportFragmentManager, "time_dialog") 124 } 125 } 126 } 127 128 private fun setAlarmManager(calendar: Calendar){ 129 val am = getSystemService(Context.ALARM_SERVICE) as AlarmManager 130 val intent = Intent(this,AlarmBroadcastReceiver::class.java) 131 val pending = PendingIntent.getBroadcast(this,0,intent,0) 132 when{ 133 Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP -> { 134 val info = AlarmManager.AlarmClockInfo(calendar.timeInMillis, null) 135 am.setAlarmClock(info,pending) 136 } 137 Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT ->{ 138 am.setExact(AlarmManager.RTC_WAKEUP,calendar.timeInMillis,pending) 139 }else ->{ 140 am.set(AlarmManager.RTC_WAKEUP,calendar.timeInMillis,pending) 141 } 142 } 143 } 144 private fun cancelAlarmManager(){ 145 val am = getSystemService(Context.ALARM_SERVICE) as AlarmManager 146 val intent = Intent(this,AlarmBroadcastReceiver::class.java) 147 val pending = PendingIntent.getBroadcast(this,0,intent,0) 148 am.cancel(pending) 149 } 150 151 @SuppressLint("SimpleDateFormat") 152 private fun String.toDate(pattern:String = "yyyy/MM/dd HH:mm"):Date?{ 153 return try { 154 SimpleDateFormat(pattern).parse(this) 155 }catch (e:IllegalArgumentException){ 156 return null 157 }catch (e:ParseException){ 158 return null 159 } 160 } 161} 162

試したこと

初心者のため,書籍通りにしかできていません.

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

開発環境は
Android Studio3.4.1
Windows10
です.

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

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

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

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

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

guest

回答1

0

ベストアンサー

Kotlin

1dateText.setText(android.text.format.DateFormat.format("yyyy/MM/dd", c ))

でどうでしょう.

投稿2020/01/12 06:55

編集2020/01/12 06:55
s.m_1

総合スコア293

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

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

murata2019

2020/01/15 01:47

提案して頂いた方法で解決しました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問