2012-03-22 7 views
2

私はモバイルデバイス用のライブラリを作成しています。このライブラリは、特定のことが起こったとき(ログイン、アクションなど)にユーザーに通知します。 iOSで動作する方法は、GameCenterをモデルにしています。ウィンドウが画面の上部からアニメーション表示され、ユーザーに通知され、アニメーションがオフになります。Androidの現在のアクティビティに一般的にどのようにビューを追加しますか?

iOSでは、UIWindowで現在のビューを簡単に取得し、ビューを追加することができます。私はAndroidにはかなり新しいので、これがどのように可能かわかりません。現在のアクティビティとそのレイアウトを知っていなければ、ビューを追加することはできません。

可能なことを達成したいのですか?これはAndroid用の正しいソリューションですか、それともAndroidユーザーは何か違うものを期待しますか?

答えて

0

Androidで初めてのアプリケーションの場合は、リソースに入れられたXMLレイアウを使用してください。この場合、あなたは常にあなたがどのアクティビティにいるのかを知っていなければなりません。リソースを読むことはできません。

ビューに純粋なコードを使用すると、すべてのアクティビティがクラスであるため、alweysがアクティビティを取得できます。すべての操作をすべてのアクティビティーのクラス・ベースに入れ、現在のアクティビティー名を取得するにはthis.classを使用します。

また、現在のアクティビティをパラメータとしてライブラリ関数に渡すこともできます。したがって、ルートビューだけでなく、コンテキスト、to、にアクセスして、問題に関するトーストメッセージを表示したり、リソースにアクセスしたりすることができます。

+0

これは図書館のためのものです。私はそれを私の活動の1つに表示したくないです(そして、私は図書館で活動をしないことを望みます)。私はただ図を作成し、図書館を統合したアプリケーションの現在の活動。 –

+0

現在のアクティビティをパラメータとしてライブラリ関数に渡すことができます。したがって、ルートビューだけでなく、コンテキスト、to、にアクセスして、問題に関するトーストメッセージを表示したり、リソースにアクセスしたりすることができます。 (コンテキストの受け渡しは、Androidコーディングでは非常に一般的な方法です) – Gangnus

+0

ありがとう、それは非常に便利です! –

0

ViewGroupにaddView()と電話するだけでいいです。

+0

** ** what ** ViewGroupに追加しますか? :-)彼は**現在**に追加したいです – Gangnus

1

アクティビティオブジェクトまたはアクティビティ内でgetWindow()。getDecorView()を呼び出すと、アクティビティのルートビューを取得できます。これがViewGroupの場合、addView(view viewAdd)を使用してビューを追加することができます。これはViewGroupのインスタンスではない場合、ViewGroupにラップしないかぎりビューを追加することはできません。

+0

問題は、私はアクティビティにアクセスできないということです。私は現在のアクティビティに何かを追加したいが、そのビューが何であるかを知らない。 iOSでは、次のようなことができます。 UIApplication * app = [UIApplication sharedApplication]; UIWindow * window = app.keyWindow; [[[ウィンドウのサブビュー] objectAtIndex:0] addSubview:myView]; –

関連する問題