前回新しいActivityを呼び出して違う画面に遷移することが出来る様になりましたが、呼び出し元のActivityへの戻り方が判らなかったので調べてみました。
呼び出したActivityはfinish()をコールする事で終了して、呼び出し元のActivityに戻る事が出来ます。
画面遷移的には戻るボタンを使っても呼び出し元のActivityに戻れるんですが、内部的にはfinish()と同じ動作になるんだろうかね?
前回新しいActivityを呼び出して違う画面に遷移することが出来る様になりましたが、呼び出し元のActivityへの戻り方が判らなかったので調べてみました。
呼び出したActivityはfinish()をコールする事で終了して、呼び出し元のActivityに戻る事が出来ます。
画面遷移的には戻るボタンを使っても呼び出し元のActivityに戻れるんですが、内部的にはfinish()と同じ動作になるんだろうかね?
アプリを作っていると、今の画面以外の物を表示したい時が出てきますよね。
Androidではそんな時にIntentを使って別Activityを呼び出す事で出来ます。
Intentの使い方はこんな感じ。
サンプルはこちら
[java]
/* Intent発行側 */
String nowPeak = “No Data”;
Intent intent=new Intent(getApplicationContext(),BtnResult.class);
intent.putExtra(“nowPeak”, nowPeak);
startActivity(intent);
[/java]
これでIntentを作成し別Activityへ遷移が出来、この別Activityで画面を表示する事で別画面への遷移が出来ます。
遷移側でデータを受け取って使いたい時はこんな感じ。
サンプルはこちら
[java]
/* Intent受取側 */
Intent intent = getIntent();
String str = “”;
if(intent != null){
str = intent.getStringExtra(“nowPeak”);
}
[/java]
これで画面遷移が出来る様になりました。
こんな風にIntentを使うのを明示的Intentと言うみたいです。
前回東京電力の電気使用状況csvファイルを取得出来る様にしましたが、ボタンを押すたびにファイルを取得する様になっていました。
そこで「ファイルを取りに行った時間」と「その時の値」を保存して、一定時間はファイルを取得しないようにしてみました。
今回データを保存するのに使ったのは「プリファレンス」。
ファイル作ってそこに保存したり、SQLiteを使ったりしないといけないのかな?とか思ってたけど、このプリファレンスを使うとメッチャ簡単!
データをキーIDと結びつけて保存出来て、読込も簡単なの。
でも、これ何処にデータ保存してるんだろうか?
ここら辺はもうちょっと勉強が必要かな。
サンプルはこんな感じ
[java]
SharedPreferences sf =
getSharedPreferences(“PeakGetTime”,MODE_PRIVATE);
/* ファイルを取得した時間を読込 */
long pgt = sf.getLong(“time”, 0);
/* 前回取得時間よりも10分以上経過していれば取得する */
if((System.currentTimeMillis() – pgt) >= 1000 * 60 * 10){
/* csvを取得し解析 */
? 中略 ?
/* 取得時間と電力の値を保存 */
Editor editor = sf.edit();
editor.putLong(“time”, System.currentTimeMillis());
editor.putString(“peak”, nowPeak);
/* 保存 */
editor.commit();
}else{
/* 保存データを読込み表示 */
String nowPeak = sf.getString(“peak”, “NoData”);
Btn01.setText(nowPeak + “\n(Local data)”);
}
[/java]
これで10分はファイルを取得しないで保存したデータを表示出来る様になりました。
Androidアプリで、今日公開された東京電力の電気使用状況csvファイルを取得してみました。
意外と簡単にファイル取得って出来るのね。
前回のボタンを押した時のイベントでcsvファイルを取得する様にしてあります。