BaseActivity结合toolbar的简单使用和封装
2018-03-14 17:17
796 查看
toolbar就不做过多的解释了,想必网上已经很多了,最近事情不多就写了个baseactivity+toolbar的封装,避免每次创建activity都写过多的冗长的代码,也可以避免每个activity都要include一下标题栏布局文件。直接上baseActivity代码,代码不多也有注释就不做过多解释了
然后在activity中这样使用
附上demo下载地址https://download.csdn.net/download/fzkf9225/10286649
package com.qingsui.toolbar; import android.os.Bundle; import android.support.annotation.LayoutRes; import android.support.annotation.Nullable; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.view.LayoutInflater; import android.view.View; import android.widget.FrameLayout; import android.widget.TextView; /** * Created by 青穗 on 2017/7/31. 4000 * BaseActivity封装 */ public abstract class BaseActivity extends AppCompatActivity { private LayoutInflater inflater; public static boolean hasToolBar = true; private Toolbar mToolbar; private TextView tvTitle; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); inflater=LayoutInflater.from(this); hasToolBar = hasToolBar(); //设置布局 setContentView(intiLayout()); if(hasToolBar) initToolBar(); //初始化控件 initView(); //设置数据 initData(); } private void initToolBar(){ mToolbar = (Toolbar) findViewById(R.id.main_bar); tvTitle = (TextView) findViewById(R.id.tv_title); tvTitle.setText(setTitleBar()); mToolbar.setNavigationIcon(R.mipmap.icon_fh1); mToolbar.setNavigationOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { finish(); } }); } @Override public void setContentView(@LayoutRes int layoutResID) { super.setContentView(layoutResID); if(hasToolBar){ super.setContentView(R.layout.activity_main); FrameLayout frameLayout= (FrameLayout) findViewById(R.id.container); inflater.inflate(layoutResID,frameLayout,true); }else{ super.setContentView(layoutResID); } } protected boolean hasToolBar(){ return true; } public abstract String setTitleBar(); /** * 设置布局 * * @return */ public abstract int intiLayout(); /** * 初始化布局 */ public abstract void initView(); /** * 设置数据 */ public abstract void initData(); /** * [防止快速点击] * @return */ public boolean fastClick() { long lastClick = 0; if (System.currentTimeMillis() - lastClick <= 1000) { return false; } lastClick = System.currentTimeMillis(); return true; } }
然后在activity中这样使用
package com.qingsui.toolbar; import android.widget.TextView; public class MainActivity extends BaseActivity { private TextView tvText; @Override public String setTitleBar() { return "主页"; } @Override public int intiLayout() { return R.layout.index; } @Override public void initView() { tvText = (TextView) findViewById(R.id.tv_text); } @Override public void initData() { tvText.setText("这特么是我瞎编的一句话"); } /** * 不重写则默认显示 toolbar * @return 默认为true即显示toolbar,false则不显示 */ @Override protected boolean hasToolBar() { return super.hasToolBar(); } // private Toolbar mToolbar; // private TextView tvTitle; // @Override // protected void onCreate(Bundle savedInstanceState) { // super.onCreate(savedInstanceState); // setContentView(R.layout.activity_main); // mToolbar = (Toolbar) findViewById(R.id.main_bar); // tvTitle = (TextView) findViewById(R.id.tv_title); // tvTitle.setText("主页"); //// mToolbar.setSubtitle("副标题"); //// //应用logo //// mToolbar.setLogo(R.drawable.logo); // //左上角的菜单图标 // mToolbar.setNavigationIcon(R.mipmap.icon_fh1); // mToolbar.setNavigationOnClickListener(new View.OnClickListener() { // @Override // public void onClick(View v) { // finish(); // } // }); // //设置右侧菜单 // mToolbar.inflateMenu(R.menu.toolbar_menu); //// 菜单的点击事件 // mToolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() { // @Override // public boolean onMenuItemClick(MenuItem item) { // switch (item.getItemId()){ // case R.id.toolbar_menu_1: // Toast.makeText(MainActivity.this,"菜单1",Toast.LENGTH_SHORT).show(); // break; // case R.id.toolbar_menu_2: // Toast.makeText(MainActivity.this,"菜单2",Toast.LENGTH_SHORT).show(); // break; // } // return false; // } // }); // } }
附上demo下载地址https://download.csdn.net/download/fzkf9225/10286649
相关文章推荐
- AppCompatActivity与toolbar的结合,封装BaseActivity
- 我一行代码都不写实现Toolbar!你却还在封装BaseActivity?
- Android 运行时权限处理封装在 BaseActivity 中,方便业务申请时只需要简单的 1,2 行代码即可成功处理权限申请
- 我一行代码都不写实现Toolbar!你却还在封装BaseActivity?
- 我一行代码都不写实现Toolbar!你却还在封装BaseActivity?
- 我一行代码都不写实现Toolbar!你却还在封装BaseActivity?
- 我一行代码都不写实现Toolbar!你却还在封装BaseActivity?
- 我一行代码都不写实现Toolbar!你却还在封装BaseActivity?
- 我一行代码都不写实现Toolbar!你却还在封装BaseActivity?
- AppCompatActivity与toolbar结合的详细使用
- 我一行代码都不写实现Toolbar!你却还在封装BaseActivity?
- BaseActivity中封装通用的Toolbar
- Toolbar的简单使用和封装
- 我一行代码都不写实现Toolbar!你却还在封装BaseActivity?
- 我一行代码都不写实现Toolbar!你却还在封装BaseActivity?
- 我一行代码都不写实现Toolbar!你却还在封装BaseActivity?
- 使用WinDbg对Windows Live Toolbar死锁的简单分析
- 使用WinDbg对Windows Live Toolbar死锁的简单分析
- 重新封装的PHPLib DB类(推荐简单项目使用本类库)
- 重新封装的PHPLib DB类(推荐简单项目使用本类库)