2009-06-12 6 views
2

XtからQt、Java Awt/Swt/Swingなどの多くのデスクトップGUIアプリケーションを開発して、Androidに慣れるのは難しいです。どのように私はそれをカスタマイズし ん)ActivityクラスはのonCreate(経由でインスタンス化されるのでコンストラクタではなくインテントを介してデータを渡す

  • は、私が次に示すように、明示的に意図機構を介してDetailedViewを呼び出すMAINVIEWのActivityクラスがあると? (コンストラクタはありません。 はデータを意図通りに渡します)

  • MainActivityには、DetailedViewインスタンスの参照を取得する方法はありますか?

  • 詳細ビューでMainActivityインスタンスの参照を取得する方法はありますか?

  • FrontEndへの参照をDetailedViewクラスに渡すにはどうすればよいですか? Intent.putExtras()は、 の特定のデータ型のみをインテントレシーバクラス に渡すことを許可します。

    MainActivity { 
        ... 
        FrontEnd fe; 
        ... 
    
        public void onCreate(Bundle savedInstanceState) { 
         ... 
         Intent myIntent = new Intent(this, DetailedView.class); 
         ... 
        } 
    
        protected void onListItemClick(ListView l, View v, int position, long id) { 
         ... 
         startActivityForResult(myIntent,..); 
         ... 
        } 
    } 
    

答えて

1

私は頻繁にカンニングと静的「のgetInstance」を使用は、活動とビューの間で通信するために呼び出します。これは、両方が同じprocに入っている限り動作しますが、まだデータアクセスに失敗しています...しかし、それは時間の問題であると確信しています...あなたがハッキーを探しているならそれを速く修正してください。それ以外の場合は、インテントでデータを渡す必要があります。

2

特定のアプリケーションのアクティビティ/サービス間で単純なデータを渡す方法の1つは、アンドロイドのSharedPreferences機能を使用することです。

これは、仕事を得るための最もエレガントなコードではないかもしれないが、私は定期的に共有好み

を経由して取得し、単純なデータ型のセット1行を可能にするために私のAndroidのプロジェクトでは、静的な「ユーティリティ」クラスを作成します
private static final String PREFERENCE_FILE_NAME = "com.snctln.util.test.SharedPreferencesFile"; 
private static final String BOOL_VALUE_ONE = "bValueOne"; 

public static boolean getBooleanValue1(Context context) 
{ 
    SharedPreferences prefs = context.getSharedPreferences(PREFERENCE_FILE_NAME, Context.MODE_PRIVATE); 
    return prefs.getBoolean(BOOL_VALUE_ONE, true); // return true if the value does not exist 
} 

public static void setBooleanValue1(Context context, int appWidgetId, boolean actualvalue) 
{ 
    SharedPreferences.Editor prefs = context.getSharedPreferences(PREFERENCE_FILE_NAME, Context.MODE_PRIVATE).edit(); 
    prefs.putBoolean(BOOL_VALUE_ONE, actualvalue); 
    prefs.commit(); 
} 
関連する問題