Android アプリ作成(タッチ処理編)その2

Android アプリ作成(タッチ処理編)
の続きになります
ちなみに、参考書籍は 日経 Linux 2011-03です
写真入りの解説なので、わかりやすいです
ここで、main.xml のTexiView01 を取得し、 Text の
内容を変更する処理を追記します
public void onClick(View v) の下に追記します
TextView textView=(TextView)findViewById(R.id.TextView01);
今回もインポートすることが必要になるので
import TextView (Android widget)
をクリックします
これにより、文字列を表示する機能
TextView を使えるようになります
そして、その下へ文字列を表示する設定を記述します
文字列を表示するには
setText()
を使います
textView.setT
まで入力すると、候補がでてきますので
setText(CharSequence text);void
を選びます
そして、() の中を
“ボタンをクリックしたよ”
というように書き換えます
textView.setText(“ボタンをくりっくしたよ”);
という文になります
あとは保存して、実行すればボタンを押すことで
ボタンの下の文字が変わることを実感できるはずです

Android アプリ作成(タッチ処理編)

今度は、簡単な処理をする動作をつくってみます
まず、TextView を追加します
追加するには
Graphical Layout で
TextView をドラッグ&ドロップします
さらに
Show in > Propeties

T3ext の値を @string/hello
へ変更します
また、
main.xml の layout?height を wrap_content
にして文字に合わせ
layout_width を fill_parent にして
画面に合わせました
ここからは処理機能を追加するので、java のソースコードを改造していきます
まず、
src
というディレクトリの2階層下にある
Activity.java
を開きます
もう少し正確にいえば
アプリケーション名(testapplicationなど) >
src >
パッケージ名(jp.co,nikkei.testapplicationなど) >
Activity.java
という階層になっています
今回は Button2 をクリックしたら
TextView の内容が変わるというシンプルなものです
まず、
setContentView(R.layout.main);
の下に
Button button = (Button)findViewById(R.id.Button02);
を追記します
まだButton が java の標準機能に組み込まれていないので
Eclipse で赤い下線が引いてある Button にカーソルを合わせ
import “Button” (Android wodget)
をクリックすることでインポートされます
これを行うことで、
import android.widget.Button;
が追記されます
この次に、ボタンを押したときの処理を書きます
ボタンをクリックしたときの処理は
setOnClickListener() を使いますが
全部入力せずとも
Button.setOnC
まで入力すれば、Eclipse で候補をだしてくれるので
該当するものをダブブクリックすれば自動入力されます
このときできた
Button.setOnclickListener(1)
の1の部分を消し
new View.setOnClickListener
を追記するのですが
new View.OnC
まで入力すれば、さきほどと同じように Eclipse が候補を選別してくれます
これにより、自動的に
public void onClick(View v){
}
が追記されます
Eclipse ってほんとに便利だと思います

Android アプリ作成(ボタン表示編)その3

引き続き。Android プログラミングです
今回は、前回までとは異なり、main.xml ではなく
string.xml
を変更していきます
一般的に、レイアウトはmain,xml
文字列は string.xml で記述するようです
文字列を追加するには
string.xml の
Resource タグをクリックし、GUI で設定するか、もしくは
string.xmlを改造します
Resources で文字列を追加するには
Add > string
で設定画面をだし
Name に button1
Value に ここを押して
と入力します
これで、自動的に string.xml に追記されています
これで、新しくボタンを
Graphical Layout で Button をドラッグ&ドロップし
作成します
プロパティを変更したいので
ボタンの上で 
右クリック ≫ Show in > Properties でプロパティ画面をだします
今回は、 string.xml の設定を反映させてみたいので
Text の部分に @string/button1 を記述します
さらに、
layout width を fill_parent へ変更します
これで、新しくできたボタンには
ここを押して
という文字が表示されています
また、main.xml には
<Button android:id=”@+id/Button02″ android:layout_height=”wrap_content” android:text=”@string/button1″ android:layout_width=”fill_parent”>
というコードが追記されます
今回の例からわかったのは
string.xml ファイルから
<string name=”button1″>ここを押して
を呼び出しているように
string.xml からソースを読み込むには
@string/NAMEの値
を指定するということです
つまり、今回の場合なら
<string name=”button1“>ここを押して
になるというわけです

Android アプリ作成(ボタン表示編)その2

引き続き、ボタン設定の続きです
今回は、作成したボタンの設定をかえてみます
ボタン作成については
Android アプリ作成(ボタン表示編)
に箇条書きでメモってますので
参考にしてください
ボタンのレイアウトを変更するため、
XMLを変更します
現在、初期の状態では
Layout height
つまり、ボタンの高さ
そして
Layout witdh
ボタンの幅
の設定が
wrap_content
になっています
このwrap_content
文字のサイズに合わせて、自動でサイズ調整する
という意味になります
これを画面の幅に合わせるようにするには
fill_parent
に変更します
変更の方法ですが
Graphical Layout を使う方法と、
main.xml を編集する方法があるのですが
Grahical layout を使って
表示されているボタンの上で 右クリック > Properties > fill_parent
となるはずですが
私の環境ではできなかったので
直接 main.xml
を編集しました
main.xml のなかに
%lt;Button android:id=”@+id/Button01″ android:text='”ぽちっとな (笑)”‘ android:layout_width=”wrap_content” android:layout_height=”wrap_content“>
という部分がありますので
この wrap_content を fill parent へ変更します
%lt;Button android:id=”@+id/Button01″ android:text='”ぽちっとな (笑)”‘ android:layout_width=”fill_parent” android:layout_height=”wrap_content”>
これで、ボタンの横幅が文字ではなく
画面の大きさに合わせたものに変わります
また、サイズ指定も可能です
%lt;Button android:id=”@+id/Button01″ android:text='”ぽちっとな (笑)”‘ android:layout_width=”100px” android:layout_height=”wrap_content”>
というようにすれば、サイズも指定できます

Android アプリ作成(ボタン表示編)

こんどは、ボタンの表示についての勉強です
前回は、文字の表示の変更でした
今回は、ボタンを配置します
前回、使用した main.xml ファイルにある
<TextView
android:layout_widh=”fill_parent”
android:layout_height=”wrap_content”
android:text=”@string/hello”
/>
の部分を削除します
ちなみに、この意味ですが
fill_parent は画面と同じ幅で文字を表示
wrap_content で高さを自動的に調整
@string/hello で string.xml のhello の値を画面に表示
となります
では、今回のボタンの配置になります
XMLを記述するという方法もありますが
残念ながら、面倒でもあり、そもそもXMLを理解できていないため
GUIで操作できる
Graphical Layout を使い、Buttonをドラッグ&ドロップし
右側にある画面に配置します
これはIDEなどでアプリを作るときによく使います
このパズルのような画面と、ソースコードがリンクしているので
このパズルのような画面に部品を
ドラッグ&ドロップで配置すると
main.xml の中にもXMLのソースが自動的に記述されます
この追加したボタンのうえで右クリックし
Show in > Properties を選択すると、プロパティを出せますので
この中の値から、Text を探し、
Value のところに好きな文字を記述します
英語でなら問題ないのですが
日本語の場合、value に記述するときには
“” で囲みましょう
<例>
“このボタンを押しましょう!!”
これで、文字を変更したときのように、
実行をすれば、ボタンを配置したアプリが起動します

Android アプリ作成(画面レイアウト編)その2

ひきつづき Android プログラミングの勉強です
アプリの画面レイアウトには
XMLをいじる
もしくは
javaソースコードを改造する
のどちらかを使います
今回は、XMLをいじります
Eclipse の左側にある
Package Explorer を最大化し
プロジェクト名 > res > layout >
main.xml というファイルをダブルクリック
その main.xml の中に
android:text =”@string/hello”
という文があります
この意味は、res ディレクトリの中の
values の中にある string.xml を参照し
hello 属性の値を読み込む
ということになります
このことから
string.xml で表示する文字を管理
main.xml でどこに表示するか決定
Activity に反映
というのが文字表示の流れになっています
極端な話、
プロジェクトでできたアプリの文字列を変更したいなら
string.xml の中の
<string name=”hello”> Hello world testr Activity </string>
のタグの中の部分を
<string name=”hello”> アンドロイド実験です </string>
というよにタグの中を表示したい文字にするだけで変更可能です
あとはこれを保存し、実行すると変更が反映されます
また、アプリの名前を変更するには
<string name=”app_name”> test</string>
のタグの中のtest の部分を 好きなアプリ名に変更することで
アプリ名を変更できるようになります
たとえば、
<string name=”app_name”>実験アプリ</string>
とすると、アプリ名が実験アプリになります
このように、固く考えず
まずはソースの改造くらいから行うと
おもしろく開発できるようになっていくと思います

Android アプリ作成(画面レイアウト編)

Android アプリ開発では
Activity を書き換えて拡張するそうです
この Activity ですが。
Android アプリの基本画面の制御につかわれるようです
例えば、ボタンの配置とか、ディスプレイタッチの検出など
そういった動作を処理しているようです
1つの Activity につき、Ⅰ画面なのですが
画面とはいっても、ボタンや検索欄などいろいろなパーツがあります
この入力欄などのパーツを view といいます
食べ物で言えば、Activity がトレイ
view が料理みたいなかんじです
トレイのどこに、配膳するか?みたいなかんじです
さて、この view 部品ですが、レイアウトするには
2つの方法があります
1、Activity の中で java でつくる
2、XMLで作って、resフォルダへ保存
  さらにjavaから読み込む
どちらが楽か?というと
2のほうが楽です
1では、java のソースコード(設計図)を改造します
今回は。XMLを改造します
Eclipse の左側にある
Package Explorer を最大化し
プロジェクト名 > res > layout >
main.xml というファイルをダブルクリックします
この .xmlがXMLファイルになります
このときに、Graphical Layout ならGUIで
main.xml なら XMLコードで記述して改造することになります
ちなみに、ここで、メイン処理を行っている java ソースコードについての
解説です
とはいっても、今回は改造しませんので
関数の解説です
onCreate() は Activity の初期化処理をかくところです
レイアウトを画面に適用する処理などは、ここに書くことになります
また、setContentView(R,layout.main);

この Activity に
res フォルダ内の
layout フォルダの中の
main.xml ファイルで定義した画面設定を適用
という内容になります
ということで
画面レイアウトの設定ファイルの指定は
setContentView() の中に
設定するという意味になるようです
それはさておき、main.xml の中を除いてみましょう
HTML や PHP のように タグが存在します
&lt/textview>
/>
という部分がありますが、これが画面に文字列を表示するための
View になっています
さすがに長くなってきたので、解説はまた明日以降になります

Android アプリ作成(プロジェクト作成)

日経Linux 2011-3 を参考に
Android アプリの開発の勉強です
開発環境に関しては ubuntu 10.10 を使用しています
Eclipse の設定(プラグイン追加など)は
スクリプトではできないので、Eclipse から操作しました
その他については
DropBox とスクリプトで開発環境
をベースにスクリプトで設定するようにしました
では、本題の Android 開発です
まずEclipse をたちあげ
File > New > Project

Android Project を選択して
next
を押します
次の画面で
ProjectName には プロジェクト名
Build target では アプリの動作対象のandroidバージョン
ApplicationName はアプリ名
Package name はパッケージ名
Android マーケットで管理するときに使用するようです
Create Activity は
アプリの起動直後に表示される画面を制御するための
基本プログラムの名前
Min SDK Version は
動作対象の Android API Level になります
どのバージョンでも動かすなら
空白にするようです
これらを入力した後に
Finish
を押すとプロジェクトができます

Webメールアプリ RoundCube その4

ようやく RoundCube の設定完了したので、ログインして
使用してみました
http://サーバーIPアドレス/roundcube
今回は
http://192.168.10.141/roundcube
でアクセス
すると
ログイン画面になるので
ユーザ名。パスワードを入れます
入れるパスワードは IMAP4 のユーザとパスワードです
今回の一連の例なら
ユーザ名 fedora
パスワード fedora のパスワード
となります
ほとんど、見たとおりでわかりやすいのですが
ちょっと分かりにくそうなものがあったのでメモ
新規フォルダを作成するには
個人設定 アイコンをクリック
次に、フォルダ一覧 のタグをクリック
左下の新規フォルダ作成を意味する + をクリック
これに、フォルダ名をつけ保存すれば完了
メールの作成をするには
電子メール アイコンをクリック
左から2番めの 新規メール作成 のアイコンをクリック
これでメール作成画面がでてきます
また、メール作成には、通常はプレーンテキストで行いますが
画面右下の エディタの種類 をHTML へ変更すれば
HTMLメールの作成ができるようになります
また、スキンファイルを変更することで、見た目を変更できます
ただ、今回使用しているver0.5 では完全対応したスキンが
まだないようです
スキンファイルは、Roundcube のコミュニティサイトから
ダウンロードできます
URLは
http://www.roundcubeforum.net/dlcat-thems-skins-1/
となります
もし、気に入ったスキンがあるなら
ダウンロードしてから unzip で解凍し
ディレクトリごと
/opt/lampp/htdocs/roundcube/skin
へコピー
という方法を行うようです
個人的にはスキンは特にデフォルトのままで問題ないので
そのままにしています
RoundCube のエラーログは
/opt/lampp/htdocs/roundcube/logs
に残ります
また、これは問題点となるのですが、
RoundCube 自体には
メールの自動振り分け、
迷惑メール対策
ウィルス対策
などに対する備えがないので、
あらかじめ メールサーバーでその設定をしておく必要性があります
今回の設定では
この設定を行っていないため
Fedoraで自宅サーバー構築などを参考に
設定することが必要になります

Webメールアプリ RoundCube その3

ようやく、スクリプトを使って
ローカルメールサーバーが構築できましたので
これに RoundCube をインストールしていきます
/optlampp/lampp start
でXAMPP を起動します
スクリプトの設定どおりにいっているなら
メールサーバーも起動しているのですが
念のため Thunderbird から
自分あてのメールを送受信してみます
これで、自作のメールサーバーから
送受信が確認できたなら
いよいよソフトの導入開始です
まず、Firefox で
http://サーバーIPアドレス/roundcube/installer
へアクセスします
今回の場合なら
http://192.168.10.141/roundcube/installer
となります
一番下に
START INSTALLATION
というボタンがあるので、これをクリック
次の画面で
必要な条件を満たしているかがでますので
ここで条件が OK となっているなら
NEXT
をクリック
次の画面でインストール画面になります
product_name には
サイトのタイトルを記入します
私は実験なので、そこまで深く考えず
デフォルトのまま Roundcube Webmail にしました
次に、
Database setup
のところで、自分のデータベースの情報を入力します
この情報を確認するには
/optlampp/bin/mysqlshow -uroundcube -p roundcubeemail
で確認します
ちなみに、本来の構文は
/opt/lampp/bin/mysqlshow -uユーザ名 -p データベース名
です
パスワードは、Webメールアプリ RoundCube その2
で設定したもので、今回は
pass です
設定を順番に書くと
Database type には
MySQL
Database server(omit for sqlite)
には
localhost
Database name (use absolute path and filename for sqlite)
には
roundcubeemail
Database user name (needs write permissions)(omit for sqlite)
には
roundcube
Database password (omit for sqlite)
には
pass
を入力します
さらに、IMAP Setting があるのですが
DNSが構築できていないので、今回は
サーバーIPアドレスにしてみました
このため、
The IMAP host(s) chosen to perform the login
には
192.168.10.141
同様に、SMTP Setting にも
サーバーIPアドレスを使用します
smtp_server
には
192.168.10.141
としました
さらに、SMTP認証をつけてあるので
smtp_user/smtp_pass
の設定をします
smtp_user には fedora@linuxwiki.com
smtp_pass には hebereke
を入力します
SMTP 関連については
echo “hebereke” | saslpasswd2 -p -u linuxwiki.com -c fedora
のところです
構文は
echo “SMTPパスワード” | saslpasswd2 -p -u ドメイン名 -c ユーザ名
となります
次は言語設定になります
Display setting & user prefs

language のところで
ja_JP
を入力し、日本語をデフォルトにします
ここまで入力が完了したら
CREATE CONFIG をクリックし、次の画面を表示します
すると、
main.inc.php (download)
db.inc.php(download)
という項目がありますので、
青くなっている download の部分をクリックし
ダウンロードします
ただし、ページはそのままです
そして、このファイルを
/opt/lampp/htdocs/roundcube/config
へコピーします
大抵は、$HOME/ダウンロード
にダウンロードされますので、
一度ダウンロード先に cd で移動し
cp main.inc.php db.inc.php /opt/lampp/htdocs/roundcube/config/
で設定ファイルをコピーします
これで次に進めるようになりましたので
ダウンロードした項目の下に
CONTINUE というボタンをクリックし
次の画面で送受信テストを行います
Test SMTP config
では送信テストを行います
Sender には送信するメールアドレス
Recipient には受信するメールアドレスを入れます
今回は、ローカル内での送受信になるので、
両方とも
fedora@linuxwiki.com
にしました
成功すれば
Thunderbird にメールが届きます
続いて、受信するサーバーのテストになります
Test IMAP config

server に IPアドレス(今回は 192.168.10.141)
Port には 143
Username には fedora
Password にはログインパスワード
となります
ちなみに、このfedora というユーザは
ssh接続ができない一般メールユーザとして作成したもので
このようなユーザを作成するには
useradd -s /sbin/nologin ユーザ名
で作成できます
これで、送受信がOKであることを確認できたら、
インストールウィザードは使わないので
アクセス不能にするためにパーミッションを変更します
cd /opt/lampp/htdocs/roundcube/
chmod 700 installer/
これで、設定が完了です
次回からは、実際に RoundCube へログインし、
使用してみます