2012年5月29日火曜日

【Forest君用】問題その2

練習問題その2です。
 次のような画面を作成します。


「現在時刻を入力して下さい」というテキストと、テキストボックス、
「時」というテキスト、そして「あいさつ」というボタンで構成されています。

テキストボックスに入力してボタンを押すことで、入力内容に合わせた結果を表示する
振る舞いを実装して下さい。

結果の表示条件は次の通り。

・入力内容が"6"~"11"の場合、"おはようございます"と結果表示
・入力内容が"12"~"17"の場合、"こんにちは"と結果表示
・入力内容が"18"~"21"の場合、"こんばんは"と結果表示
・入力内容が上記以外の時間の場合、"睡眠中zzz"と結果表示
・入力内容が数値以外の場合、"へそまがり"と結果表示

それでは環境作り。
この間の練習問題で作ったプロジェクトに次のファイルを追加して下さい。

res/layout/main2.xml
<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="現在時刻を入力して下さい" />

    <LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <EditText
            android:id="@+id/editText"
            android:layout_width="50dp"
            android:layout_height="wrap_content" />

        <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="時" />

    </LinearLayout>

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="onClick"
        android:text="あいさつ" />

    <TextView
        android:id="@+id/result"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />

</LinearLayout>


src/作成したパッケージ/Test2Activity.java
import android.app.Activity;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.EditText;
import android.widget.TextView;

public class Test2Activity extends Activity implements OnClickListener {

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);

  // main2.xmlをViewに設定
  setContentView(R.layout.main2);
 }

 // ボタンが押されたときの振る舞い
 @Override
 public void onClick(View v) {

  // ボタンを押した後に表示する文字列
  String message = "";

  // テキストBOXに入力された文字列を取得
  EditText editText = (EditText) findViewById(R.id.editText);
  String time = editText.getText().toString();

  // ここにmessageに文字列を設定する条件を書いてね!
  // message = ...



  // ボタン押下後のテキストの表示
  TextView result = (TextView) findViewById(R.id.result);
  result.setText(message);
 }
}

あとはAndroidManifest.xml内の"TestActivity"を"Test2Activity"に変更したら下準備完了!

Javaソースの32行目のところにコーディングして、
ボタンを押したらあいさつのテキストを表示させるようにしてくださいね。

練習問題その1より簡単になってるかな~。
まあ、でも、実装の仕方ではAndroidらしいコーディングが出来そうだから勉強になるよ、
きっと!

2012年5月24日木曜日

【Forest君用】変数への代入(復習)

プログラミング未経験者が一番最初につまずくのは変数の代入だそうです。
ということで、今回は復習として変数への代入について書いてみます。

シンプルに文字列を例に挙げてみます。
// まずは変数の宣言。変数名はtext
String text;

// 変数への代入。"代入"という文字列を代入
text = "代入";

ここまではOKでしょうか?
変数を宣言し、"="で値を代入します。
String型の変数の場合は""で囲んだ値(文字列)を代入できます。
イメージとしては、textという器に"代入"が入ってる感じかな。

String型は文字列の結合ができるので、ついでにおさらい。
// まずは変数の宣言。変数名はtext。"代入"という文字列を代入
String text = "代入";

// 変数textに"は簡単"という文字列を結合
text = text + "は簡単";

// text += "は簡単";とコーディングしても同じこと

文字列の結合は"+"を使います。
 "Xperia Play" + "欲しい"は"Xperia Play欲しい"となります。
イメージはtextという器にまず"代入"と"は簡単"が順番に入っている感じ。 

文字列の結合についてみましたが、 次の例はどうなるかわかりますか?
// まずは変数の宣言。変数名はtext
String text;

// int型の変数を宣言。変数名はnumber。1を代入
int number = 1;

// textに文字列とint型変数を結合して代入
text = "Androidが" + number + "番好き!";

textは最終的に"Androidが1番好き!"が代入されています。
変数numberはint型なのにString型に代入できるの?って思った方、するどい!!
本来であればコンパイルエラーとなりますが、
javaにはオートボクシングという機能があり、自動で文字列に変換してくれています。
但し、text = number;みたいにint型の変数のみを代入しようとするとエラーになります。
文字列と合わせてならOKって事です。

因みに初心者が陥りやすい間違え。sirocoもよくやったな。。。
// まずは変数の宣言。変数名はtext
String text;

// "1 + 1 = 2"と代入したい。。。
text = "1 + 1 = " + 1 + 1;

// "1 + 1 = 11"と表示される。
// 左から結合されるため"1 + 1 = 1" + 1となってしまう。
// text = "1 + 1 = " + (1 + 1); すれば希望通り

// 結合するつもりが再代入してしまう。。。
text = "私は";
text = "Androidが";
text  = "好きです";

// 最終的に代入されているのは"好きです"のみ。。。

などなど。
Stringに偏りましたが、代入について少しでも理解が深まれば幸いです(^^ ♪

色々と欲しいものが。。。

GalaxyNexusを購入したことで端末が2台になった。
6月にはJBの発表もあるらしく、Nexus5台(?)が秋に発売されるという
リークもある。

今後、端末もどんどん増えてくる予感がする。。。
sirocoはハマると止まらないから(>_<)

Android関連Goodsでも気になるものがたくさん出来たから
とりあえずメモしとこ~


とりあえず秋のNexusTabletに向けて貯蓄せねば!

2012年5月19日土曜日

新しいアプリのアイコン作った

タイトルの通り。
こんな感じ。


アプリ名まるわかりwww

最近nexus弄るのに夢中でアプリ作りどころじゃないsirocoでした。
rootとったから、そろそろsim移そうかな~

2012年5月11日金曜日

【Forest君用】問題その1

これまでAndroidアプリ「HellowWorld!」の作成や、Javaのコーディングの仕方を学んできたので、
ここらで練習問題。

まず次のソースをコピペしてね。
(適当なサンプルプロジェクト立ち上げてやってね)

res/layout/main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/multiplication_table"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />

</LinearLayout>

src/作成したパッケージ/TestActivity.java
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class TestActivity extends Activity {

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);

  // main.xmlをViewに設定
  setContentView(R.layout.main);

  // main.xmlで宣言したTextView(idがmultiplication_table)を取得
  TextView multiplicationTableView = (TextView) findViewById(R.id.multiplication_table);

  // multiplicationTableViewにgetMultiplicationTable()メソッドで取得した文字列をセット
  // ⇒つまり掛け算九九の表を画面に表示
  multiplicationTableView.setText(getMultiplicationTable());
 }

 /**
  * 以下の掛け算九九の表を生成し、
  * String型文字列を返却する。
  *
  *   1  2  3  4  5  6  7  8  9
  *   2  4  6  8 10 12 14 16 18
  *   3  6  9 12 15 18 21 24 27
  *   4  8 12 16 20 24 28 32 36
  *   5 10 15 20 25 30 35 40 45
  *   6 12 18 24 30 36 42 48 54
  *   7 14 21 28 35 42 49 56 63
  *   8 16 24 32 40 48 56 64 72
  *   9 18 27 36 45 54 63 72 81
  *
  * @return 掛け算九九の表
  */
 private String getMultiplicationTable() {
  String multiplicationTable = "";

  // ここに九九の表を作るロジックを入れてね!

  return multiplicationTable;
 }
}

コピペ出来たら、AndroidManifest.xmlのapplicationタグ内に以下の記述を追加。
(プロジェクト生成時にTestActivityの名称でActivity生成してたら不要かも?)
<activity
     android:name=".TestActivity"
     android:label="@string/app_name" >
     <intent-filter>
         <action android:name="android.intent.action.MAIN" />
         <category android:name="android.intent.category.LAUNCHER" />
     </intent-filter>
</activity>

ここまで出来たら準備おk!
javaソース内のgetMultiplicationTableメソッド内にロジック書いて、
九九の表をアプリの起動画面に表示させて下さい。


>Forest君
出来たらメールでもちょうだいな(^。^)y-.。o○

2012年5月10日木曜日

新しいアプリ作り始めたのだ

5月頭に公開したばかりだけど、新しいアプリを作り始めました。
(と言っても、新しいプロジェクト起こしただけだけど)

前回のアプリ「こんなときに画面消灯~」(←名前長いよ)は1週間ほどで作りましたが、
今回のはきつそうです。
非公開のAPIとかも駆使しないときつそうな気がしていて、
sirocoの技量で出来るのか?少し不安ですが(;一_一)

まあ、なるようになるか~
因みにプロジェクト名は「ClearNotification」。
大体どんなアプリか想像つくかな??

それにしても「閃きカメラ」ができるのはいつなんでしょう??

【Java】繰り返し その2

最近 Forest君用のblog書いてなかったから久しぶりに。
(てか、Forest君がサボってたんだし。。。)

前回、繰り返し処理を for文で実現する方法を説明しましたが、
今回は"while"を使った繰り返し文について勉強します。

while文は次のように記述します。

while ( 繰り返しの条件式 ) { 繰り返す内容; }

int i = 1;
while (i < 6) {
    System.out.println(i + "回目");  
    i++;
}
これは前回 for文でやった
for (int i = 1; i < 6; i++) {
    System.out.println(i + "回目");  
}
と全く同じ結果が得られます。

while文は日本訳の通り、繰り返しの条件式を満たす間、処理を繰り返します。
上記の例ですと、int型の変数 i が6より小さい場合に、
"System.out.println(i + "回目");"と、"i++;"を繰り返します。
つまり、i を1からインクリメントしていき、何回目かを表示しています。

この例ではint型を使用しましたが、
int型を加算していくような繰り返しは for文が、
フラグなどが切り替わるまで繰り返すようなケースは、while文が適していると思います。

今回は以上です。

2012年5月6日日曜日

【こんなときに画面消灯しないでよ】ver1.0.0 リリース



こんなときに画面消灯しないでよ
⇒マーケットはこちら




機能概要
本アプリは端末の画面消灯設定を変更するだけのアプリです。
アプリ起動中にちょっと目を離すと画面が消灯していて、画面表示させると、「ちょ、アプリ終了してるし!?」という、誰もがする苦い経験を解消します。
操作はアプリ起動画面で画面消灯しないように設定するだけ。
ステータスバーやウィジェットでもワンクリックで変更可能です。

主な機能
- 画面消灯の設定切り替え
- 画面消灯させる場合の時間設定
- ウィジェットでの設定切り替え
- ステータスバーでの設定切り替え

推奨OS
Android 2.1 以降

コメント
siroco作成アプリ第二弾です。
同様の機能を持ったアプリはすでにPlayStoreに存在しますが、
sirocoが使いたいと思うものを作りました。
デザイン面でHitする方は使っていただけると幸いです。

Androidワンショルダーげっと

アスキーショップでずっと売切れてたアンドロイドショルダーが
再発売されたので購入した!

ドロイド君好きにはたまらない鞄だよ!!




これを持ち歩けば少しはデベロッパぽく見られるのかな??

休みボケだわ。。。

G.W.も今日でおしまい。
sirocoは帰省していたので、PCを触らない生活をしていました。
(PC持って帰る時もあるんだけどね、ネット環境がないんだわ。。。)

新しいアプリも無事に公開でき、ありがたいことにブログにコメントまで頂き、
順調にインストール数が伸びてくれればいいな~と思う今日この頃。
次のアプリのアイデアが浮かんでしまったので、
またぽちぽち作っていこうと思います。

Forest君用の勉強資料もそろそろ進めないといけないな~(-_-;)

明日あたりGalaxyNexusが届くから色々と弄りたいし(rootとったり)。

なんとなく休みボケでPGする気起きないから、近況報告でした。。