Java tutorial
/* * Copyright 2016, The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.zyascend.RecompileToDo.view.tasks; import android.content.Intent; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.design.widget.CoordinatorLayout; import android.support.design.widget.FloatingActionButton; import android.support.design.widget.NavigationView; import android.support.v4.view.GravityCompat; import android.support.v4.widget.DrawerLayout; import android.support.v7.app.ActionBar; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.view.MenuItem; import android.widget.FrameLayout; import com.zyascend.RecompileToDo.R; import com.zyascend.RecompileToDo.model.data.TaskDataAchiever; import com.zyascend.RecompileToDo.model.data.TasksRepository; import com.zyascend.RecompileToDo.presenter.tasks.TasksPresenterAchiever; import com.zyascend.RecompileToDo.utils.ActivityUtils; import com.zyascend.RecompileToDo.utils.TasksFilterType; import com.zyascend.RecompileToDo.view.statisticstasks.StatisticsActivity; import butterknife.Bind; import butterknife.ButterKnife; /** * * Created by Administrator on 2016/5/15. */ public class TasksActivity extends AppCompatActivity { private static final String CURRENT_FILTERING_KEY = "CURRENT_FILTERING_KEY"; private TasksPresenterAchiever mPresenter; @Bind(R.id.toolbar) Toolbar toolbar; @Bind(R.id.contentFrame) FrameLayout contentFrame; @Bind(R.id.fab_add_task) FloatingActionButton fabAddTask; @Bind(R.id.coordinatorLayout) CoordinatorLayout coordinatorLayout; @Bind(R.id.nav_view) NavigationView navView; @Bind(R.id.drawer_layout) DrawerLayout drawerLayout; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.tasks_act); ButterKnife.bind(this); setSupportActionBar(toolbar); ActionBar ab = getSupportActionBar(); ab.setHomeAsUpIndicator(R.drawable.ic_menu); ab.setDisplayHomeAsUpEnabled(true); drawerLayout.setStatusBarBackground(R.color.colorPrimaryDark); if (navView != null) { setupDrawerContent(navView); } TasksFragment tasksFragment = (TasksFragment) getSupportFragmentManager() .findFragmentById(R.id.contentFrame); if (tasksFragment == null) { tasksFragment = TasksFragment.newInstance(); ActivityUtils.addFragmentToActivity(getSupportFragmentManager(), tasksFragment, R.id.contentFrame); } TasksRepository mTaskRepository = TasksRepository.getInstance(TaskDataAchiever.getInstance(this)); mPresenter = new TasksPresenterAchiever(mTaskRepository, tasksFragment); // ?? if (savedInstanceState != null) { TasksFilterType currentFiltering = (TasksFilterType) savedInstanceState .getSerializable(CURRENT_FILTERING_KEY); mPresenter.setFiltering(currentFiltering); } } @Override protected void onSaveInstanceState(Bundle outState) { outState.putSerializable(CURRENT_FILTERING_KEY, mPresenter.getFiltering()); super.onSaveInstanceState(outState); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: drawerLayout.openDrawer(GravityCompat.START); return true; } return super.onOptionsItemSelected(item); } private void setupDrawerContent(NavigationView navView) { navView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() { @Override public boolean onNavigationItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.list_navigation_menu_item: break; case R.id.statistics_navigation_menu_item: Intent intent = new Intent(TasksActivity.this, StatisticsActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); startActivity(intent); break; default: break; } item.setChecked(true); drawerLayout.closeDrawers(); return true; } }); } }