Androidアプリにおけるユーザインタフェースの基本処理

IDEEclipse 3.7

 状態:終了  閲覧数:2,603  投稿日:2012-04-21  更新日:2013-03-20
Androidアプリにおけるユーザインタフェースの基本処理


履歴


・2012-4-21 … 開始
・2012-6-07 … 終了


・Textviewがどこにあるか分からない時は、パレットより「Show Icon and text」で表示切替を行なえば、OK

既存開発環境 再構築

 閲覧数:573 投稿日:2012-05-15 更新日:2013-03-20

再構築


・「Titanium Mobileインストール」したら、既存開発環境がぶっ壊れてしまった
・再構築していく

先ず、「Titanium Mobile」で、「jdk1.7.0」は使えなかったため、既にアンインストールしている。
D:/Program Files/Java/jdk1.7.0/

現在のパスは、
C:\Program Files\Java\jdk1.6.0_30

うーん、何か「ADT」バージョン古い、とか言われているような気がする。
This Android SDK requires Andr...ate ADT to the latest version.

上げるのは構わないが、「Titanium Mobile」が動作しなくなったら、いやだな。

[Android SDK and AVD Manager]立ち上がらねー。


android sdk のロケーションが設定されていません


ヘルプ/新規ソフトウェアのインストールを選択
URLにhttps://dl-ssl.google.com/android/eclipse/
を入力。
保留中と出るので少し待って、項目が出てきたらそれらを選択して次へ。
右下のステータスバーにインストールが出るので、求められたら再起動。

これで、再び、エミュレータが立ち上がるようになった。

ちなみに、URLを入れないでやってみると分かるが、
インストール候補があまりに多過ぎて、何をどうしたら良いか、さっぱり分からなくなる。

それにしても、
>android sdk のロケーションが設定されていません
って、エラーメッセージ内容と全然ちゃうやんけ!


いずれにしても、現環境においては、下記のように異なるエラーメッセージが表示された場合は、
パス設定を見直すのではなく、先ずは「This Android SDK requires Andr...ate ADT to the latest version」を信じて、バージョンを上げてみた方が良いと思われ。

Eclipse
・This Android SDK requires Andr...ate ADT to the latest version.

Android SDK and AVD Manager
・android sdk のロケーションが設定されていません


しかし、それにしても、これで、また、
「Titanium Mobile」側の開発環境がぶっ壊れてたら、ヤだな

クリックリスナー

 閲覧数:434 投稿日:2012-05-17 更新日:2013-03-21

クリックリスナー


このサンプルって、前ページと連動してるんだね
・全然気が付かなかったよ

その過程で幾つもエラーに遭遇したんだけど、エラーメッセージ、分かりづらい。かなり。
読み解くには経験値が必要。
現在、レベル0.1ぐらいなので、エラー解消するのが、もの凄く大変だった。

■ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER]

■id は解決できないか、フィールドではありません

■public 型 HelloAndroidActivity_2 はそれ独自のファイル内に定義されなければなりません

■XMLファイルが開けない
エラーが発生しました。詳細については、エラー・ログを参照してください。
com/android/ide/eclipse/adt/internal/editors/layout/LayoutEditor

何回かリフレッシュしたら、イケた。どゆこと?

リフレッシュというか、
開いているファイルを一旦全部閉じ、一番始めに「XMLファイル」を開くとイケる



5/18
<クリックリスナー>
「View.OnClickListenerインターフェイス」をimplementsする仕組が分からないので、メモ。

■大前提
・ボタンのクリックイベントを検知するためには、ボタンのオブジェクトへリスナーを登録する


■リスナーとは?
・イベントに応じて呼び出されるメソッドが定義されたオブジェクト
・onCreateメソッドなど、特定のイベントが発生したら呼ばれるメソッドが定義されている


■リスナー例
・Activityクラス … onCreateメソッドなど、特定のイベントが発生したら呼ばれるメソッドが予め定義されている


■イベントは2種類ある
A.必ず発生するイベント処理 … onCreateメソッド
B.アプリケーションにより必ずしも発生しない場合があるイベント処理 … ボタンのイベントなど
Bについては、必ず発生するものではないため、そのイベントに対応するメソッドをすべて定義しておくのは無駄

イベントごとに、呼ばれるメソッドだけを定義したクラス(インターフェイス)を用意しておき、必要に応じてそれを実装する、という方法を採用
※実装 … インターフェイスの場合このように呼称するが、中身はクラス継承と(ほぼ)同じ


■リスナー例
・ボタンのクリックイベントに対応するリスナー … Viewクラスで定義されていてる「View.OnClickListenerインターフェイス」。中身は、onClickというメソッドのみ定義


■結論
「OnClickListenerインターフェイスを実装したクラス」を、クリックイベントのリスナー(オブジェクト)として登録すれば、ボタンがクリックされた際、onClickメソッドが呼び出される


■コード例
1.必要パッケージをインポート
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;


2.「OnClickListenerインターフェイスを実装したクラス」を作成
public class HelloAndroid2Activity extends Activity implements OnClickListener {
・implementsしないと、クリックイベントがButttonに渡されない
・理由は、クリックリスナーへ登録する際(=setOnClickListenerメソッドを実行する際)、引数で渡せるのはView.OnClickListener「として扱えるインスタンス」のみだから

3.ボタンオブジェクトの取得
Button bt = (Button)findViewById(R.id.button1);


4.クリックリスナーの登録
ボタンオブジェクトへ対して、「OnClickListenerインターフェイスを実装したクラス(HelloAndroid2Activity)」を登録
bt.setOnClickListener(this);
・引数で、インターフェースを実装したクラスのオブジェクトを指定。「OnClickListener」インターフェースを実装している場合には「this」で指定


5.抽象メソッド実行
ボタンをクリックすると、まず最初に、「View.OnClickListenerインターフェイス」のonClick抽象メソッドが呼ばれる


6.実装メソッド実行
次いで、実装したメソッドが呼ばれる
public void onClick(View view) {


▽Android/OnClickListener - Java - 教えて!goo
▽View.OnClickListenerインターフェイス | クラス | AndroidStyle

「eclipse」起動しなくなる

 閲覧数:4,039 投稿日:2012-06-19 更新日:2013-03-21

不具合発生


・突然、eclipseが立ち上がらなくなった
・java.lang.IllegalStateException: アプリケーション・サービスを獲得できません。org.eclipse.core.runtime バンドルが解決済みかつ始動済みであるか確認してください (config.ini を参照
・ログ見ても意味が分かんない
▼D:/eclipse/configuration/○○.log
!ENTRY org.eclipse.osgi 4 0 2012-06-19 13:05:09.194
!MESSAGE バンドル org.eclipse.equinox.simpleconfigurator_1.0.200.v20110815-1438 [376] が非アクティブです。

!ENTRY org.eclipse.osgi 4 0 2012-06-19 13:05:09.384
!MESSAGE アプリケーション・エラー
!STACK 1
java.lang.IllegalStateException: アプリケーション・サービスを獲得できません。org.eclipse.core.runtime バンドルが解決済みかつ始動済みであるか確認してください (config.ini を参照)。
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:74)

・原因は不明だが、eclipseのキャッシュを削除すればいけるらしい
(1) eclipse.exe ショートカットを作成
(2)ショートカット[プロパティ]の)[リンク先]に -clean を追加
(3)ショートカットダブルクリック
▽eclipse.exeの-cleanオプションをショートカットに設定する - MyEclipse ブログ

・無事解決したのだが、eclipseの立ち上げって、キャッシュ使ってたのにあんなに遅かったんだ、ってことに気が付く


・eclipseのコメントアウト
→「Ctrl」+「/」


Android入門

「世界を目指せ」に再挑戦



週間人気ページランキング / 5-11 → 5-17
順位 ページタイトル抜粋 アクセス数
アクセスが、ありませんでした! 0
2024/5/18 1:01 更新