投稿

7月, 2023の投稿を表示しています

<TextView>をブログに書けない

 このブログを書きながら、HTML画面でコードを書こうとすると、どうしてもエラーが消えないとか、表示が変になることがありました。  理由を調べたところ、Androidのプログラミングでは多用するfindViewById<TextView>とかに出てくる<TextView>。<>とそれではさまれた部分が問題のようです。こういうものを削除するとエラーも消えるし、表示もおかしくなりません。多分、HTMLでは<>で挟まれた言葉は何か特別のコマンドの意味があるからなんだろう、とは思うけど、ではどうするか。  他の方のサイト上でのコードの表示を見ると、時々<TextView><Button>などのないものがあるので、多分同じ理由でこれを削除したのだろうと思ったのですが・・・これまで調べたところ、このことに関する情報がネット上にありません。これって、プログラミングする人にとっては常識なのかなあ。

カッコつけすぎに注意

ときどき setOnClickListener の省略しない使い方がわからなくなるので復習。 こういうのを時々書いて、忘れないようにしなければならない。 class Listener: View.OnClickListener { override fun onClick(p0: View?) { findViewById(R.id.text1).text = "ボタンが押された" } } val listener = Listener() findViewById(R.id.button1).setOnClickListener(listener) ところで、これをやりながら気づいたのだが、次のものは機能しない。 findViewById(R.id.button1).setOnClickListener({view,View -> { findViewById(R.id.text2).text = "ボタンを押した"}}) ボタンは押せるけど、テキストが変わることはない。 なぜかというと、波カッコ({})が二重になっているから。つまり次が正解。 findViewById(R.id.button1).setOnClickListener({view,View -> findViewById(R.id.text2).text = "ボタンを押した"}) 従って、これなんかも動かない。 findViewById(R.id.button1).setOnClickListener {{ findViewById(R.id.text2).text = "ボタンを押した"}} 例によって理由はよくわからないけど、波カッコはただまとめるだけじゃなくて、その中に あるものをちょっと違うものにしてしまう働きもあるのだろう。 では、

医療・福祉のための年齢計算2

2022年9月に「医療・福祉のための年齢計算2」というアプリを初めてリリースしました。誕生日を入れると 現在の年齢や、西暦・元号(昭和、平成、令和)の各年ごとの年齢を年表で見られるものです。 https://play.google.com/store/apps/details?id=com.nifty.masa_nakamura.nenreikeisan 別に医療・福祉でなくても良いですが、そういう業界で患者さんの年齢を知りたいときなどに元号表示されていると計算が面倒なことを知っていたので、このようなタイトルにしました。素人感満載なアプリですが、とりあえず動くものができたので感激でした。知り合いの人などに使ってもらえたのも嬉しかったです。

周囲の明るさに応じた画面の輝度の調整

現在、時計アプリの製作中なのですが、周囲の明るさに応じて画面の明るさを変えられたらいいなと思い、その部分をテストするためのアプリを作りました。 今までは入力も結果表示もスマホ画面か音声の出力しかやっていなかったので、周囲の明るさを取得する照度センサーや輝度を調整するバックライトの操作は「難しそう」の先入観がありました。 しかしやってみると輝度の調整は簡単でした。onCreate(・・・) の下、setContentView(・・・) の後に次の3行を付け加えるだけ。 (kotlin) val lp = window.attributes //ウインドウの属性を取得 lp.screenBrightness = 0.1f //属性の中で輝度を0.5に設定(最大値は1.0) window.attributes = lp なんなら、次の1行でもよい。(ただし後述の問題点あり) (kotlin) window.attributes.screenBrightness = 0.1f いっぽう照度の取得は少し面倒。SensorEventListenerというインターフェースが必要で、sensorManagerというクラスも使う必要があります。 次のコードで、スマホ付属の照度センサーの有無と、センサーがある場合にはその測定値が画面表示されます。 (kotlin) class MainActivity : AppCompatActivity(), SensorEventListener { //SensorEventListenerというインターフェースをつけておくことが必要。 private lateinit var sensorManager: SensorManager //SensorManagerを遅延初期化 private var lightSensor: Sensor? = null //SensorクラスのlightSensorをメンバ変数として作っておく(onCreate、onResumeの両方で使うので) private lateinit var te

はじめまして!

2022年2月、60才を目前にして趣味でプログラミングを始めました。kotlinでアンドロイドのスマホ用アプリにチャレンジしています。 物忘れも多い年頃の独学の初心者でおまけにブログも初めてなので頓珍漢なことも多いと思いますが、どうぞよろしくお願いいたします。😽  使用しているPC:富士通 デスクトップPC D583/Win 11/MS Office H&amp;B 2019/Core i7-4770/wajunのWIFI/Bluetooth/HDMI/DVD/32GB/1TB SSD (中古パソコン再生品。自分と似たようなものか・・・)