美文网首页
安卓开发之在当前Activity获取视图View

安卓开发之在当前Activity获取视图View

作者: 白於青 | 来源:发表于2017-05-17 09:33 被阅读0次

    一般来说,获取当前活动中的某一个视图还是很方便的,我们在使用onClick函数的时候经常会见到这样的用法:

    @Override
    public void onClick(View v) {
          Snackbar.make(v, "真的要删除全部数据吗?", Snackbar.LENGTH_SHORT)
                            .setAction("是哒!", new View.OnClickListener() {
                            @Override
                            public void onClick(View v) {
                                adapter.deleteAllTips();
                                refreshTips();
                                Toast.makeText(MainActivity.this, "已经删除", Toast.LENGTH_SHORT).show();
                            }
            }).show();
    }  
    

    我们注意到,make函数的第一个参数是v,这可以是当前布局的任意一个View,Snackbar会使用这个View来找到最外层的布局从而展示Snackbar。但是我们有的时候并不是使用onClick函数来调用Snackbar。例如我们会在onOptionsItemSelected函数中使用Snackbar。此时,我们可以借用下列方法获取View视图:
    getWindow().getDecorView().findViewById(Android.R.id.content)
    就上述例子来说,可以修改为这样:

    @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            switch (item.getItemId()) {
                case R.id.delete:
                    //TODO 删除本地数据
                    Snackbar.make(getWindow().getDecorView().findViewById(R.id.delete), "真的要删除全部数据吗?", Snackbar.LENGTH_SHORT)
                            .setAction("是哒!", new View.OnClickListener() {
                                @Override
                                public void onClick(View v) {
                                    adapter.deleteAllTips();
                                    refreshTips();
                                    Toast.makeText(MainActivity.this, "已经删除", Toast.LENGTH_SHORT).show();
                                }
                            }).show();
                    break;
                default:
                    //TODO 黑人困惑......
                    Toast.makeText(this,"default",Toast.LENGTH_LONG).show();
            }
            return true;
        }
    

    就是这样啦,蟹蟹大家的阅读!

    相关文章

      网友评论

          本文标题:安卓开发之在当前Activity获取视图View

          本文链接:https://www.haomeiwen.com/subject/qzorxxtx.html