/** * Copyright 2016 bingoogolapple * <p/> * 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 * <p/> * http://www.apache.org/licenses/LICENSE-2.0 * <p/> * 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 cn.bingoogolapple.photopicker.activity; import android.os.Bundle; import android.support.annotation.IdRes; import android.support.annotation.LayoutRes; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.support.v7.widget.ViewStubCompat; import android.view.MenuItem; import android.view.View; import android.widget.RelativeLayout; import cn.bingoogolapple.photopicker.R; /** * 作者:王浩 邮件:bingoogolapple@gmail.com * 创建时间:16/6/24 下午2:32 * 描述: */ public abstract class BGAPPToolbarActivity extends AppCompatActivity { protected String TAG; protected Toolbar mToolbar; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TAG = this.getClass().getSimpleName(); initView(savedInstanceState); setListener(); processLogic(savedInstanceState); } /** * 初始化布局以及View控件 */ protected abstract void initView(Bundle savedInstanceState); /** * 给View控件添加事件监听器 */ protected abstract void setListener(); /** * 处理业务逻辑,状态恢复等操作 * * @param savedInstanceState */ protected abstract void processLogic(Bundle savedInstanceState); @Override public void setContentView(@LayoutRes int layoutResID) { super.setContentView(R.layout.bga_pp_toolbar_viewstub); mToolbar = getViewById(R.id.toolbar); setSupportActionBar(mToolbar); getSupportActionBar().setDisplayHomeAsUpEnabled(true); ViewStubCompat viewStub = getViewById(R.id.viewStub); RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams) viewStub.getLayoutParams(); lp.addRule(RelativeLayout.BELOW, R.id.toolbar); viewStub.setLayoutResource(layoutResID); viewStub.inflate(); } public void setNoLinearContentView(@LayoutRes int layoutResID) { super.setContentView(R.layout.bga_pp_toolbar_viewstub); mToolbar = getViewById(R.id.toolbar); setSupportActionBar(mToolbar); getSupportActionBar().setDisplayHomeAsUpEnabled(true); ViewStubCompat viewStub = getViewById(R.id.viewStub); viewStub.setLayoutResource(layoutResID); viewStub.inflate(); } @Override public void setTitle(CharSequence title) { getSupportActionBar().setTitle(title); } @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == android.R.id.home) { onBackPressed(); return true; } return super.onOptionsItemSelected(item); } /** * 查找View * * @param id 控件的id * @param <VT> View类型 * @return */ protected <VT extends View> VT getViewById(@IdRes int id) { return (VT) findViewById(id); } }