developer.android.com Web サイトのチュートリアルに示されているように、動作するナビゲーション ドロワーを作成しました。しかし今、私はアプリケーションの複数のアクティビティ用に NavigationDrawer.class で作成した 1 つの Navigation Drawer を使用したいと考えています。
私の質問は、複数のアクティビティに対して 1 つのナビゲーション ドロワーを使用する方法を説明する小さなチュートリアルを作成できる人がここにいる場合です。
最初に読んだのは、この Answer Android Navigation Drawer on multiple Activitiesです。
しかし、それは私のプロジェクトでは機能しませんでした
public class NavigationDrawer extends Activity {
public DrawerLayout drawerLayout;
public ListView drawerList;
private ActionBarDrawerToggle drawerToggle;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
drawerToggle = new ActionBarDrawerToggle((Activity) this, drawerLayout, R.drawable.ic_drawer, 0, 0) {
public void onDrawerClosed(View view) {
getActionBar().setTitle(R.string.app_name);
}
public void onDrawerOpened(View drawerView) {
getActionBar().setTitle(R.string.menu);
}
};
drawerLayout.setDrawerListener(drawerToggle);
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setHomeButtonEnabled(true);
listItems = getResources().getStringArray(R.array.layers_array);
drawerList = (ListView) findViewById(R.id.left_drawer);
drawerList.setAdapter(new ArrayAdapter<String>(this, R.layout.drawer_list_item, android.R.id.text,
listItems));
drawerList.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int pos, long arg3) {
drawerClickEvent(pos);
}
});
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (drawerToggle.onOptionsItemSelected(item)) {
return true;
}
return super.onOptionsItemSelected(item);
}
@Override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
drawerToggle.syncState();
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
drawerToggle.onConfigurationChanged(newConfig);
}
}
このアクティビティでは、ナビゲーション ドロワーが必要なので、「NavigationDrawer」を拡張し、他のいくつかのアクティビティでは、同じナビゲーション ドロワーを使用したい
public class SampleActivity extends NavigationDrawer {...}