同じプログラムを実行しましたが、上はGenymotionでのエミュレータ、下はAndroidStudioでのエミュレータ。これで悩んでました。いったい何が悪いんでしょうかね。取り敢えずはGenymotionを使っていきますか?プロジェクトのクリーンとかインスタントランを無効にするとかやりましたが、無効(?)でした。困ってGenymotionを使ったらこの通りです。
同じプログラムを実行しましたが、上はGenymotionでのエミュレータ、下はAndroidStudioでのエミュレータ。これで悩んでました。いったい何が悪いんでしょうかね。取り敢えずはGenymotionを使っていきますか?プロジェクトのクリーンとかインスタントランを無効にするとかやりましたが、無効(?)でした。困ってGenymotionを使ったらこの通りです。
Androidプログラミングでデータを保存する方法の一つでPreferenceManegerを使う方法があるようです。自分的に感じたのはグローバルに名称とデータのセットを作る方法らしい。上の図で例えば”NECK"と対応した””を作って、saveがクリックされると”NECK"に入力された文字列が入力される。そんな感じですかね。
オブジェクト宣言、シングルトンはインスタンスが一個しかない場合、有効とか?この場合はvlが前で言うclass名ですかね?vlは二個以上作る手段が無いのでしょうから、良いんでしょう。
前にclassとしていたところをdata classにしてみましたが、実際はインスタンスは一個が原則なので、シングルトンで宣言するのが良さそうです。
嫌いな人はいないようです。長男の息子、今小学5年は果物が大好きで、イチゴやミカンなど結構食べますね。ミニバスをやっているので体を動かしているので、食べれるんでしょうね。
電卓モドキを作ってましたら、四則演算の+-*/で全く同じ処理が出てきました。上の図の20から24位で+-*/のbuttonに0から3までを割り当てました。配列の添え字に該当しますので、”+”、”-”、”*”、”/”となりますので、それをkigouとして置いて、上手く行きました。
上のルーチンで、入力文字列に数字以外が入ってくる可能性があるので、それを取り除いて入力文字列にします。
プログラミングは試行錯誤の連続、特に自分の場合は遊びですので、分からないことが多すぎです。一歩進んだらそれをコピーして次に行く、そんなことを繰り返してます。今やっている電卓モドキもそうです。あるネットの情報ではWidowsのコピーで行けるとあったんですが、いつの間にかAPTでしたか?コンパイラは通るようですが、APTのロード中にエラーが出てしまいました。全く同じくコピーして名前を変えたプロジェクトを作ってもダメでした。ネットをさらに探すと、ありました。藁にすがる思いでやってみたら動きました。
NEXUS 5x のデスクトップ画面。
20+30を計算します。=をタップする前です。
答えは50です。SIMfreeのスマホなので、電話は今のところ出来ません。メールやインターネットブラウザ、LINEは自宅のWifiに接続で使えます。小型のパソコンといったところです。SIMはネットから注文してますが、意外と通話を入れると高い、初期手数料もかかるし、端末の持ち込み料が高いようです。契約先にもよるかもしれません。
スマートウォッチとの連携も完ぺきではないですが、歩いた歩数、血圧、脈拍なども記録されます。がスマホの情報もアップロードされてるかもしれません。"(-""-)"
はっきり言えばスマホは必要がほとんどないのですが、AndroidStudioでエミュレータを使っているだけでは、なんか息子も不審に思うようです。パソコンの画面にスマホの画面が写っていることが、何の意味があるのか?という事らしいです。自分の場合は、やってみることが面白いので、Nexus 5を買うことにしました。Sonyのものを買おうかとも思ったんですがdocomoと一体になってるのが多くて、SIMフリーは見つかりませんでした。通話はほとんど使わないだろうし、データも不明です。どの程度使うのか?家で使う分にはwifiに接続すればパケットは使わないで済むようですし、かといって全く通話をしないのもおかしいので、イオンモバイルの通話とデータが使えるSIMを買ってみようか?と思ってます。何しろ初心者なので、誤解勘違いなどあるかもしれません。
上が注文したスマホです。同じようなものにカーボンがあったんですが、値段が高いので、安いこっちにしました。カーボンだと強度が強いんですかね?
今電卓に挑戦してますが、普通の電卓のようにするのは結構難しいですね。何を押してもエラーが起きないことは、そう簡単ではないようです。誰が使うのでもないので、どうすれば思った通りに動くのか?のお試しみたいなものです。でちょっと困ったのが、+-/*が同じような処理なんですが、setOnClickLintenerで書くと別々に書くことになるのです。
全くの思い付きのコードなので、恥ずかしいのですが、上のようなコードが-/*でも出るのか困ったものです。kotlinなら解決法があるのでしょうが、今は分かりません。
一番上のアンダーラインがあるとこに入力します。電卓上には数値1と2を覚えます。計算をクリックすると計算します。結果は結果のエリアに表示します。今は+だけの計算しかありません。
スマホの画面でキーボードが邪魔?今はパソコンからなので、パソコンのキーボードが使えますが、スマホに行ったら入力できなくなりそうですので、邪魔でもキーボードは必要ですね。
一見キーボードが邪魔。これが無いと入力できませんよね。"(-""-)"VBとかなら、イベントがいっぱいありますがスマホではsetOnClickListenerだけなんですかね?
問題は上の1から10までの累計です。ただ元のプログラムでは最初が何も表示になってなかったので、0を表示してみましたが、今度は01と表示されます。"(-""-)"
どうもこの電卓は整数でも小数点表示されるようです。"(-""-)"
この電卓は=を押さないと計算しないようですが、これが難しくしているかもしれません。
二つの数値が決まった段階で、次の演算記号が入ってきたら計算するようにすれば、%とか+/-も簡単なんでしょうが。変更できますかね?参考というかそのままのネットの情報は、ここです。
画面のレイアウトは上の図のようです。
画面のレイアウトから生成されたレイアウトのコード。
カウンターだとこれで良い様ですよ。
同じコードのjavaの例でした。なんか面倒な感じですね。ネットから探しました。
はじめてのAndroidプログラミングをまねして、やってみてます。慎重にやったつもりでも間違いがありました。
上がMainActivity.ktです。肝の部分が詰まっているんでしょうね。素人考えだと、例えばguがクリックされれば、イベントが発生します。自分の手が決まるということですね。VBとかだとそういう考えでなかったですかね。"(-""-)"ここの部分にgu,choki,paのどこがタップされたか?分かるということですね。驚き。
上がResultActivity.ktです。MainActivityよりは驚きが少ないですが、同じくbackButton.setOnClickListenerと書けてるのは前と同じですかね。後はVBとかで言えばフォームの値の渡し方ですかね。割と分かりやすいかな?"(-""-)"VBとかは分かりにくい。自分にとってはですが。でもグローバルな変数を使ってるんでしょうかね。
サンプルではさらにジャンケンを複雑にして行きます。自分にとってはここまでが結構目新しいのですが。
Chapter05からAndroidプログラミングらしきところから再開します。imageButton1などにワーニングがついてますが、直接は関係ないようなのでそのまま進みます。コンポーネント?の配置が一筋縄では行かないようです。とにかくエラーが起きないように配置します。少しややっこしいのがお互いの配置の関係です。これを制約というみたいです。