0

Android アプリで SideNavigationBar (ActionBarSherlock に加えて) を使用していますが、SherlockActivity を拡張するクラスを作成する方法についてジレンマに陥っています。

すべてのアクティビティには SideNavigation バーと同様のテーマの ABS があるため、アクティビティ全体で一定になる SideNavigation と ABS を初期化する SherlockActivity のジェネリック サブクラスを作成し、このサブクラスをすべての独自のアクティビティに拡張することは理にかなっています (ホーム、設定など)。たとえば、HomeActivity は、SherlockActivity を拡張する ActionBarActivity を拡張します。ActionBarActivity は、ABS のすべてのカスタマイズとサイドバーの初期化を行う場所です。

問題は、ActionBarActivity からレイアウトにアクセスする方法がわからないことです。これは、(findViewById を使用して) SidenavigationBar を取得する場所であるため必要です。HomeActivity でこれを行っていた場合、コンテンツ ビュー (setContentView) を設定した後で findViewById を使用してレイアウトにアクセスしますが、ActionBarActivity でコンテンツ ビューを設定したことがないため、レイアウトから SidenavigationBar にアクセスする方法がよくわかりません。 .

助けてくれてありがとう!

4

1 に答える 1

1

しかし、ActionBarActivity でコンテンツ ビューを設定したことがないため、レイアウトから SidenavigationBar にアクセスする方法がよくわかりません。

あなたの質問を理解できれば、HomeActivity は呼び出しますsetContentView()が、その親である ActionBarActivity のレイアウトにアクセスしたいですか?
次に、単純に ActionBarActivity (おそらくinitSideNavigationBar()) で新しいメソッドを作成します。この新しいメソッドは、HomeActivity のfindViewById()後で呼び出す限り、以前と同じように呼び出すことができます。setContentView()

于 2013-04-17T17:07:35.687 に答える