2代目 geanee WPJ40-10 開封の儀

Windows 10 Mobile / Windows Phone Advent Calendar 2016の21日目です。

www.adventar.org

Androidの仕事で忙しくて、Windows10Mobileについては、まったく触れられませんでした・・・。
そこで今回は先日注文した2代目(2台目)WPJ40-10の開封の儀について書きます・・・。

実は、もともとメインで使っていた初代WPJ40-10がここ最近ヘタってきてました・・・。
1年経ってない気もしますが・・・。

f:id:BG1:20161221222839j:plain

Twitter公式クライアントで最初の数文字ぐらいしか入力できず、それ以降キーボード押しても入力されないみたいなことが頻発したのがきっかけです・・・。

f:id:BG1:20161221223038j:plain

最初はTwitterのバグかとおもいましたが、Aristeaや検索でも起きたので、おそらく全体的な問題かと・・・。
また、液晶保護シートやボディにもちょっと傷が増えてきてしまいました・・・。
安いので、結構タフな使い方をしてたのも原因だと思いますが・・・。

で修理とかも考えたのですが、NTT-XでWPJ40-10が値下げしてるとのことで買ったほうが速いなということで、
もっているシルバーとは別にブラックを購入となりました・・・。

f:id:BG1:20161221223630j:plain

バックカバーセットも頼みました!これはお得です・・・。

f:id:BG1:20161221223856j:plain

ブラックには、オレンジと紺(?)が付いてきます・・・。

f:id:BG1:20161221224012j:plain

あけたらこんなかんじ・・・。

f:id:BG1:20161221224209j:plain

付属の液晶保護シートを貼りましたが、前回より気泡が酷いかも・・・。
しかし、6000円台の端末なので、高級端末より気にせず気軽に使えるのがgeaneeのいいところでもあったり・・・。

f:id:BG1:20161221224403j:plain

後ろはこんなの・・・。

ちなみにヘタってるシルバーは、

f:id:BG1:20161221224652j:plain

こんな感じ・・・。

f:id:BG1:20161221224738j:plain

SIMとSDを入れ替え・・・。

f:id:BG1:20161221224833j:plain

起動するとgeaneeのロゴ・・・。

f:id:BG1:20161221224926j:plain

各種設定します・・・。

f:id:BG1:20161221231334j:plain

IIJmioにセット・・・。

f:id:BG1:20161221225510j:plain

バックアップ復元中・・・。

f:id:BG1:20161221225607j:plain

こんな感じで復元・・・。(まだ終わってないのもあるけど・・・。)

f:id:BG1:20161221225702j:plain

さて、カバーセットをあけて、カラーラインナップを見てみましょう・・・。

f:id:BG1:20161221225800j:plain

ブラックには、オレンジと紺・・・。
シルバーには、グリーンとピンク・・・。
そして、カバーセットの水色、レッド、パープル・・・。
9色に増えました・・・。
これなら1週間以上着せ替えも可能ですね・・・。

さらに先日まで、

NTTグループの安心オンラインストア - NTT-X Store

こんな割引セールでもっと安く買えるチャンスがあったようですが、これは終わってしまったようです・・・。

それでも、日本人の手にフィットする4インチ、手ごろな価格、豊富なカラーラインナップ、十分な性能・・・。
今後もgeanee WPJ40-10は手放せない1台になりそうです・・・。
現場からは以上です・・・。

TextView.textStyle

ボールド(太字)、イタリック(斜体)、ぐらいの文字スタイルなら、textStyleで設定できる・・・。

TextView | Android Developers

activity_main.xmlで、

textview1にはnormal(通常)、textview2にはbold(太字)、textview3にはitalic(斜体)をセット・・・。

f:id:BG1:20170108141841p:plain

真ん中はちょっと太くなってるのがわかる・・・。
下はちょっと斜めになってるのがわかる・・・。

Sample/android/TextView/textStyle/src/TextView at master · bg1bgst333/Sample · GitHub

TextView.textColor

文字の色はtextColorで設定する・・・。

TextView | Android Developers

まず、

f:id:BG1:20170108133438p:plain

XMLを追加・・・。

f:id:BG1:20170108133508p:plain

colors.xmlとして、

colorリソースのredを8桁の16進数で定義・・・。

activity_main.xmlは、

textview1は、android:textColor="@color/red"でリソースから赤をセット・・・。
textview2は、6桁16進数で緑を直接指定・・・。
textview3は、3桁16進数で青を直接指定・・・。

f:id:BG1:20170108134141p:plain

こんな風に色を指定できた・・・。

Sample/android/TextView/textColor/src/TextView at master · bg1bgst333/Sample · GitHub

TextView.textSize

文字の大きさはtextSizeで設定する・・・。

TextView | Android Developers

strings.xmlで、

textview1_text~textview3_textを定義・・・。

f:id:BG1:20170108035349p:plain

XMLを追加・・・。

f:id:BG1:20170108035404p:plain

dimens.xmlを追加・・・。
これは、dpやspなどの寸法をあらかじめ定義しておくリソースファイル・・・。

dimens.xmlに、

textview1_size、textview2_sizeをそれぞれ10sp、20spと定義・・・。

activity_main.xmlで、

textview1は、android:textSize="@dimen/textview1_size"という感じで、textSizeをdimens.xmlのtextview1_sizeの値に・・・。
textview2も同様にtextview2_sizeの値・・・。
textview3は、"30sp"をハードコードで・・・。

f:id:BG1:20170108035928p:plain

このように、それぞれの文字の大きさが変わった・・・。

Sample/android/TextView/textSize/src/TextView at master · bg1bgst333/Sample · GitHub

TextView.text

基本に立ち返って・・・。

TextViewのXML属性textには、TextViewに表示する文字列を指定する・・・。

TextView | Android Developers

strings.xmlには、

nameを"textview1_text"として、"ABC"という文字列をリソース定義・・・。

activity_main.xmlでは、

textview1は、android:text="@string/textview1_text"として、リソースで定義したtextview1_textにある文字列を表示するようにセットしている・・・。
textview2は、文字列"XYZ"を直接指定・・・。

f:id:BG1:20170108031833p:plain

こんな風に、TextViewにセットする文字列は、リソース定義でも、ハードコードでもできる・・・。
ただし、一般的にはリソース定義のほうが推奨だろう・・・。

Sample/android/TextView/text/src/TextView at master · bg1bgst333/Sample · GitHub

Bundle

Bundleは、あるオブジェクトから別のオブジェクトに複数のパラメータを渡すのに便利なクラス・・・。

Bundle | Android Developers

いろいろなところで使われるが、今回はIntentで起動したActivityにパラメータを渡す・・・。

activity_main.xmlで、

strings.xmlで、

という感じでButton1を用意・・・。

MainActivity.java側では、

Button1が押されたら、Bundle型のargsオブジェクトを生成し、putString, putInt, putBooleanでそれぞれパラメータを登録・・・。
Bundleオブジェクトごと登録できるputExtrasでargsをintent1に登録し、startActivityで起動・・・。

SubActivity.java側では、

getIntentで渡されたintentを取得・・・。
intent.getExtrasでBundle型argsとして取り出して、args.getStringでキー"str"の値、args.getIntで"num"の値、args.getBooleanで"bool"の値を取り出す・・・。
あとはTextViewにそれらの値を連結した文字列をセット・・・。
(別々のTextViewを用意せずに、1つのTextViewに文字列連結でやってしまって申し訳ない・・・。)

f:id:BG1:20170108021116p:plain

Button1を押すと、

f:id:BG1:20170108021129p:plain

このようにBundleでパラメータが渡されている・・・。

Sample/android/Bundle/Bundle/src/Bundle at master · bg1bgst333/Sample · GitHub

Application

アプリケーションの開始から終了まで、永続的にデータを保持していたい場合、Activityのメンバに持っていても、Activityは常に破棄される可能性があるので、その時にデータも消えてしまう・・・。

Application | Android Developers

Applicationクラスなら、開始から終了まで永続的にデータを保持できる・・・。

activity_main.xmlに、

Buttonを1つ・・・。

strings.xmlで、

Button1とする・・・。

f:id:BG1:20170107135527p:plain

Classを追加・・・。

f:id:BG1:20170107135549p:plain

Applicationの派生クラスCustomApplication・・・。

アプリケーションが永続的に保持する独自メンバappCountを0に初期化し、onCreate時やonTerminate時に値を表示・・・。
外のクラスからもアクセスできるようにsetAppCountやgetAppCountを定義・・・。

MainActivity.javaでは、

Button1を押したら、SubActivityを起動するようにしている・・・。

で、SubActivity.javaは、

SubActivityのみで有効なsubCountを0に初期化して、onCreate時にsubCountの値を表示してから1増やす・・・。
そのあと、CustomApplicationメンバオブジェクトcustomAppをgetApplicationで取得し、getAppCountで取得した値を表示してから、1増やしてsetAppCountでcustomAppにセットする・・・。

onDestroyの時にもsubCount、appCountともに表示する・・・。

あとは、

android:name=".CustomApplication"とすることで、独自のCustomApplicationが使われるようになる・・・。

実行すると、

f:id:BG1:20170107141854p:plain

これはCustomApplicationのonCreate時のappCountの値・・・。
アプリケーションの開始とともに、appCountが0・・・。

Button1を押すと、

f:id:BG1:20170107142116p:plain

SubActivityが起動・・・。
subCountが0・・・。

f:id:BG1:20170107142259p:plain

appCountも0・・・。

しかし、このあとどちらの値もインクリメントされている・・・。
バックキーで戻ると、

f:id:BG1:20170107142519p:plain

subCountが1に・・・。

f:id:BG1:20170107142610p:plain

appCountが1に・・・。
また、Button1を押してみると・・・。

f:id:BG1:20170107142709p:plain

破棄されたSubActivityを改めて再生成してるので、subCountは0・・・。

f:id:BG1:20170107142924p:plain

appCountは破棄されていないCustomApplicationオブジェクトから取得しているので1・・・。

またバックキーを押すと、

f:id:BG1:20170107143210p:plain

subCountは1、

f:id:BG1:20170107143246p:plain

appCountは2となる・・・。

戻ったときにはSubActivityは破棄されるので、何度やってもsubCountは2以上にはならない・・・。
一方、appCountはアプリケーションが終了するまで、SubActivityを起動するたびに1増えていく・・・。

ちなみにButton1を表示しているMainActivityの状態からバックキーでアプリケーションを終了しても、

f:id:BG1:20170107143614p:plain

onTerminate時のappCountが表示されない・・・。

baroqueworksdevの日記: Application#onTerminate()がコールされない

どうも実際にはonTerminateは呼ばれない模様・・・。

Sample/android/Application/Application/src/Application at master · bg1bgst333/Sample · GitHub