Как я могу разделить навигационный ящик между несколькими действиями?

Привет, я работаю над школьным проектом для окончания школы. Проект состоит из приложения для Android, которое имеет MainActivity "Навигационный ящик". Теперь я узнал тысячи вопросов об этом аргументе, но все ответы были об использовании фрагментов. Я не хочу использовать фрагменты, так как я могу поделиться Навигационным Ящиком между различными действиями?

Примечание: 1) Я использовал стандартный Навигационный ящик, предоставленный Android Studio.

2) Я не хочу делиться панелью инструментов MainActivity, а просто ящиком навигации.

Благодарю.

1 ответ

Вам нужно создать BaseActivity с Drawer, и все дочерние действия будут расширять эту BaseActivity.

public class BaseActivity extends AppCompatActivity  {    
    @Override
    public void setContentView(int layoutResID) {
        super.setContentView(R.layout.activity_base);
        // Base activity view with navigation drawer

        mainContener = (RelativeLayout) findViewById(R.id.mainContener);
        // MainCOntener where you want to add your child activity view
        // with toolbar and all
        getLayoutInflater().inflate(layoutResID, mainLayout);


        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);


        NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
        navigationView.setOnClickListener(this);

        findViewById(R.id.linearLayout_home).setOnClickListener(this);
        ...
        ...

        getDrawerData();
    }

     @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //setContentView(R.layout.activity_base);

    }


  }

И создать дочернюю активность, как это

public class Home extends BaseActivity {


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_home);
        }
    }

Каждый раз, когда setContentView(); вызов из дочерней активности, что представление (или Layout, как R.layout.home) будет раздуто в Contener базовой активности (например, R.layout.base_activity) в ViewGroup

Для получения дополнительной информации вы можете использовать код приложения Google-IO, они также используют концепцию BaseActivity https://github.com/google/iosched

Другие вопросы по тегам