2012-02-14 5 views

答えて

2

私は、このような場合を考えることはできませんが、私はそれは二つの理由のために、このような素晴らしいアイデアはないと思う:あなたが明示的に活動を必要としないときあなたは、それをしたいと思うのはなぜ

  1. 明日これが変更され、Viewの別のコンテキストがある場合はどうなりますか?
+2

** 1 **呼び出し側ができないで、[状況](http://stackoverflow.com/a/5376772)があります。パラメータとしてのアクティビティ** 2。** Androidは後方互換性を維持するのにはかなり良いです(私はその開発ツールについては言えません)。 IMHO @ lulumeyaの答えは正しい答えです。 – ateiob

+0

'ContextThemeWrapper'は確かに全く新しいレベルのナンセンスを追加します。私は 'getBaseContext()'を使ってアクティビティにアクセスできると聞いています。 – EpicPandaForce

53

私が知っているように、コンテキストはosからService、BroadcastReceiverなどに渡すことができるため、必ずしも安全ではありません。しかし、ほとんどの場合、それは問題ではありません。このコードでご確認ください

if(context instanceof Activity) 

お気軽にご利用ください。

3

技術的には、ビューはあなたのビューのみの活動によってインスタンス化されていることをスーパー確実でない限り、私はこのことを示唆していますので(LayoutInflater経由)任意のコンテキスト

で作成することができます。これを行うことはクリーンな考えではありません。

2

私はあなたがスニペット以下を使用することができると思う:。

/** 
* Get activity instance from desired context. 
*/ 
public static Activity getActivity(Context context) { 
    if (context == null) return null; 
    if (context instanceof Activity) return (Activity) context; 
    if (context instanceof ContextWrapper) return getActivity(((ContextWrapper)context).getBaseContext()); 
    return null; 
} 
関連する問題