什么是快速开发?我只需要几行代码就可实现如下效果:

几行代码:

public class MainActivity extends TopBarBaseActivity {    @Override    protected int getContentView() {        return R.layout.activity_main;    }    @Override    protected void init(Bundle saveInstanceState) {        setTitle("直播吧");        setTopLeftButton(R.drawable.ic_title_back, new OnClickListener() {            @Override            public void onClick() {                Toast.makeText(MainActivity.this,"你点击了左上角的图标",Toast.LENGTH_SHORT).show();            }        });        setTopRightButton("联系人", R.drawable.ic_mine, new OnClickListener() {            @Override            public void onClick() {                Toast.makeText(MainActivity.this,"你点击了右上角的图标",Toast.LENGTH_SHORT).show();            }        });    }}

第一步:依赖 appcompat-v7;

compile 'com.android.support:appcompat-v7:25.2.0'

第二步:设置 NoActionBar 主题:

        

第三步:创建 TopBarBaseActivity与其布局文件;
1,封装的TopBarBaseActivity.java

public abstract class TopBarBaseActivity extends AppCompatActivity {    private Toolbar toolbar;    private FrameLayout viewContent;    private TextView mTitle;    private int menuId;    private String menuStr;    private OnClickListener onClickListenerTopLeft;   //左边图标的点击事件    private OnClickListener onClickListenerTopRight;    //定义接口    public interface OnClickListener {        void onClick();    }    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_top_bar_base);        toolbar = (Toolbar)findViewById(R.id.toolbar);        viewContent = (FrameLayout)findViewById(R.id.view_content);        mTitle = (TextView)findViewById(R.id.tv_title);        setSupportActionBar(toolbar);        getSupportActionBar().setDisplayShowTitleEnabled(false);        LayoutInflater.from(this).inflate(getContentView(),viewContent);        init(savedInstanceState);    }    @Override    public boolean onOptionsItemSelected(MenuItem item) {        if (item.getItemId() == android.R.id.home) {            onClickListenerTopLeft.onClick();        }else if(item.getItemId() == R.id.menu_1) {            onClickListenerTopRight.onClick();        }        return true;    //自己处理点击事件    }    @Override    public boolean onCreateOptionsMenu(Menu menu) {        if (menuId != 0 || !TextUtils.isEmpty(menuStr)) {            getMenuInflater().inflate(R.menu.menu_activity_base_top_bar,menu);        }        return true;    }    @Override    public boolean onPrepareOptionsMenu(Menu menu) {        if (menuId != 0) {            menu.findItem(R.id.menu_1).setIcon(menuId);        }        if (!TextUtils.isEmpty(menuStr)) {            menu.findItem(R.id.menu_1).setTitle(menuStr);        }        return super.onPrepareOptionsMenu(menu);    }    protected void setTopRightButton(String menuStr,OnClickListener rightListener) {        this.onClickListenerTopRight = rightListener;        this.menuStr = menuStr;    }    protected void setTopRightButton(String menuStr,int menuId, OnClickListener rightListener) {        this.menuStr = menuStr;        this.menuId = menuId;        this.onClickListenerTopRight = rightListener;    }    //添加一个方法设置图标资源id和监听器    protected void setTopLeftButton(int iconId,OnClickListener listener) {        toolbar.setNavigationIcon(iconId);        this.onClickListenerTopLeft = listener;    //接口回调    }    protected void setTitle(String title) {        if (!TextUtils.isEmpty(title)) {            mTitle.setText(title);        }    }    protected abstract int getContentView();    protected abstract void init(Bundle saveInstanceState);}

2,activity_top_bar_base.xml布局文件:

<?xml version="1.0" encoding="utf-8"?>                        

3,menu_activity_base_top_bar.xml布局文件:

<?xml version="1.0" encoding="utf-8"?>    

第四步:如何使用?继承这个TopBarBaseActivity 即可:

public class MainActivity extends TopBarBaseActivity {    @Override    protected int getContentView() {        return R.layout.activity_main;    }    @Override    protected void init(Bundle saveInstanceState) {        setTitle("直播吧");        setTopLeftButton(R.drawable.ic_title_back, new OnClickListener() {            @Override            public void onClick() {                Toast.makeText(MainActivity.this,"你点击了左上角的图标",Toast.LENGTH_SHORT).show();            }        });        setTopRightButton("联系人", R.drawable.ic_mine, new OnClickListener() {            @Override            public void onClick() {                Toast.makeText(MainActivity.this,"你点击了右上角的图标",Toast.LENGTH_SHORT).show();            }        });    }}

这样,在以后的开发中就可以只需改变标题栏背景颜色,标题,左右图标啦!更加方便以后开发。

更多相关文章

  1. android点击事件的四种方式
  2. Qt5.2中的android环境搭建
  3. Android(安卓)TextView限定行数最大值,点击按钮显示所有内容
  4. Jenkins持续集成安卓 Android
  5. android edittxet 设置可点击不可编辑状态
  6. eclipse安装及配置android基础教程
  7. Android(安卓)webview监听网页对话框点击事件
  8. Android开发环境配置
  9. Android(安卓)全自动js脚本测试 Appium教程——appium环境搭建(一

随机推荐

  1. android 控件绘制完成的监听
  2. android fp refresh
  3. android 图片的自由缩放和旋转
  4. Android又一个超漂亮的日历控件
  5. Android常用功能
  6. Android短信拦截
  7. Google公布Android 4.1完整功能
  8. Android中用webView引用js
  9. ADB 实现Android Http 代理
  10. Android 异步加载图片(扩展后)