首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏全栈程序员必看

    AppCompatActivity.setContentView如何装载视图到AppCompatActivity

    注意:AppCompatActivity.setContentView()与Activity.setContentView()主要的区别,Activity.setContentView直接将视图添加到Window 上,AppCompatActivity.setContentView()借助AppCompatActivity的Delegate代理类,将要显示的视图加入到代理层视图,代理层视图在添加到Window上; 目录 1.setContentView()调用流程 1)在AppCompatActivity定义了setContentView 2)getDelegate() 3)ensureSubDecor(); mWindow.getDecorView() 6)Window.setContentView() 2.整个添加在Activity中添加视图的流程如下 3.学习总结 ---- 大概可以了解如下内容: a.AppCompatActivity 1.setContentView()调用流程 Activity extends AppCompatActivity @Override protected void onCreate(Bundle savedInstanceState

    73120编辑于 2022-09-13
  • 来自专栏android技术

    源码级分析AppCompatActivity适配过程

    在as上新建项目时我们会发现activity会自动继承AppCompatActivity,它继承至FragmentActivity,查看AppCompatActivity源码我们会发现,以前FragmentActivity

    1K20发布于 2020-07-03
  • 来自专栏JetPack

    源码分析 | AppCompatActivity-setContentView 之我大意了

    背景 故事是这样开始的 有一天,我发现自己写的布局没有 按照我的想法打印 带上了莫名其妙的开头 有一天,两个年轻人,不讲武德 非要告诉我这是 AppCompatActivity 的原因 我不信 好吧,我再从 背景 说一遍 正如上面所述,AppCompatActivity 有自己特定的容器 layout,如果在设计时,让它直接替代了Activity的默认根容器,就意味着 AppCompatActivity 所以正因为如此,AppCompatActivity 里的 DecorView 变量名叫做 mSubDecor,而我们基础 PhoneWindows 里的叫做 mDecor,再想想为什么AppCompatActivity 具体如下图所示: 检查层级我们就会发现,原来AppCompatActivity 是在原 Activity 布局层级上嵌套的,正如上面所描述,是不是有种ohhhh,就这啊的感觉。 哦呵呵呵,原来这里是对我们的默认的 View 进行了替换,这也就是为什么我们使用AppCompatActivity 打印出来的子 View 自带了前缀显示。

    50920编辑于 2022-02-09
  • 来自专栏极客猴

    聊聊Activity那些事

    而Activity还有本身之外,还有FragmentAtivity、以及AppCompatActivity,你知道这几个Activity的区别吗? Activity所在的包 Activity: android.app.Activity FragmentAtivity: android.support.v4.app.FragmentActivity AppCompatActivity : android.support.v7.app.AppCompatActivity 各Activity的底层实现 Activity ↳ ContextThemeWrapper ↳ ContextWrapper ↳ FragmentAtivity 从上面得知AppCompatActivity是FragmentAtivity子类,而FragmentAtivity又是Activity子类 各Activity的作用 AppCompatActivity: 能够让运行在API Level 7或者以上版本且继承AppCompatActivity的Activity,使用ActionBar以及设置Theme_AppCompat

    55620发布于 2018-08-16
  • 来自专栏24K纯开源

    Android开发中遇到的requestFeature() must be called before adding content异常

    关键原因在于,我在Android Studio 1.5里面新建的工程Activity默认是继承自AppCompatActivity类。 在那篇帖子里面提到了一些解决方法:(1)要么把基类从AppCompatActivity(或者ActionBarActivity)改成Activity。 这个类在现在的SDK中已经被废弃使用了,从源代码来看,ActionBarActivity现在就是继承自AppCompatActivity的一个空类,紧紧是为了向下兼容考虑。 那么,AppCompatActivity新在哪里呢?根据文档说明,AppCompatActivity是一个设计实现的更通用的类,内部使用了AppCompatDelegate作为逻辑实现核心。 有时你可能想在一个旧版本的Activity(既不是继承自ActionBarActivity又不是继承AppCompatActivity的类)中使用Material Design的组件。

    3.3K70发布于 2018-01-18
  • 来自专栏苦旅

    一个Activity向另外一个Activity传递值的方法

    data = intent.getStringExtra("maple"); 2.具体实现代码 1)FirstActivity: public class FirstActivity extends AppCompatActivity setText("走你"); } } 2)SecondActivity: import android.content.Intent; import android.support.v7.app.AppCompatActivity setText("走你"); } 2)SecondActivity: import android.content.Intent; import android.support.v7.app.AppCompatActivity );//第一个参数是requestCode,第二个是用来传值的intent的实例 2.完整代码 1)FirstActivity public class FirstActivity extends AppCompatActivity }); button1.setText("走你"); } 2)SecondActivity public class SecondActivity extends AppCompatActivity

    1K20发布于 2020-07-23
  • 来自专栏韩曙亮的移动开发专栏

    【Kotlin 协程】协程并发安全问题 ( 使用 Atomic 并发安全类型 | 使用 Channel 通道 | 使用 Mutext 轻量级锁 | 使用 Semaphore 轻量级信号量 )

    发现最终累加不足 100000 ; package kim.hsl.coroutine import android.os.Bundle import androidx.appcompat.app.AppCompatActivity 协程不安全访问 问题 ; 代码示例 : package kim.hsl.coroutine import android.os.Bundle import androidx.appcompat.app.AppCompatActivity kotlinx.coroutines.runBlocking import java.util.concurrent.atomic.AtomicInteger class MainActivity : AppCompatActivity ++ } } 代码示例 : package kim.hsl.coroutine import android.os.Bundle import androidx.appcompat.app.AppCompatActivity ++ } } 代码示例 : package kim.hsl.coroutine import android.os.Bundle import androidx.appcompat.app.AppCompatActivity

    1K20编辑于 2023-03-30
  • 来自专栏路遥的专栏

    关于视图加载的一些奇技淫巧~

    这篇文章将深入探索 AppCompatActivity 的 视图加载 过程。 Factory2 在 Android 中,我们经常在 xml 文件中书写布局。 AppcompatActivity 和 Factory2 如果把上面的 FactoryActivity 修改为继承 AppCompatActivity ,我们会看到 TextView 确实变成了 RedTextView 所以 Button 没有发生变化的原因是,已经设置过了 Factory,导致 AppcompatActivity 自己的 factory 没有被 install。 如果不是的话,当父类是 AppcompatActivity ,setFactory2 会抛出异常。因为 AppCompatActivity 设置了自己的 Factory 。 如何兼容 AppCompatActivity 的 Factory2 如何既能使用自己的 Factory2,又能让 AppCompatActivity 保留自己的 Facotory 呢?

    1.2K10编辑于 2022-03-29
  • 来自专栏韩曙亮的移动开发专栏

    【Kotlin 协程】协程异常处理 ① ( 根协程异常处理 | 自动传播异常 | 在协程体捕获异常 | 向用户暴露异常 | 在 await 处捕获异常 | 非根协程异常处理 | 异常传播特性 )

    在协程任务中抛出异常 , 查看异常的抛出点 ; package kim.hsl.coroutine import android.os.Bundle import androidx.appcompat.app.AppCompatActivity 在协程任务代码中可能抛出异常的代码处捕获异常 ; package kim.hsl.coroutine import android.os.Bundle import androidx.appcompat.app.AppCompatActivity await 方法 , 则不会报异常 ; package kim.hsl.coroutine import android.os.Bundle import androidx.appcompat.app.AppCompatActivity package kim.hsl.coroutine import android.os.Bundle import android.util.Log import androidx.appcompat.app.AppCompatActivity 在子协程中产生的异常 , 会直接抛出 ; package kim.hsl.coroutine import android.os.Bundle import androidx.appcompat.app.AppCompatActivity

    1.2K10编辑于 2023-03-30
  • 来自专栏俞其荣的博客

    Kotlin入入入门(二)

    import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v7.app.AppCompatActivity ; import android.widget.TextView; public class MainActivity extends AppCompatActivity { @Override import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity() { 不同的是继承父类是带 () 的,即表示构造器,比如上面的 AppCompatActivity() ;而接口则不需要 () 。 举个例子: class MainActivity : AppCompatActivity(), View.OnClickListener { ... } AppCompatActivity()

    86620编辑于 2022-07-28
  • 来自专栏Android原创

    Android代码上减少方法数的一些奇技淫巧

    1.1 子类中调用了父类中未被子类重写的方法 (1)场景 先看一个简单的类: public class MainActivity extends AppCompatActivity { @Override (2)解决方案 那这次我们改成这样: public class MainActivity extends AppCompatActivity { @Override protected (3) 其他特例 public class MainActivity extends AppCompatActivity { @Override protected void onCreate 这个其实也是有解决办法的,可以这样写((AppCompatActivity)this).setContentView。 1.2 私有内部类 (1)场景 public class MainActivity extends AppCompatActivity { @Override protected void

    1.1K60发布于 2018-07-25
  • 来自专栏木子杂志

    android JavaPoet记录

    栗子 ​目标代码: package com.ben.poet; import android.support.v7.app.AppCompatActivity; import android.os.Bundle ; public class MainActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle MainActivity")                //继承的父类               .superclass(TypeVariableName.get("android.support.v7.app.AppCompatActivity com.ben.poet; import java.lang.Override; public final class MainActivity extends android.support.v7.app.AppCompatActivity

    94610发布于 2020-08-09
  • 来自专栏Spring相关

    体验活动的生命周期

    package com.example.acticitylifecycletest; import android.app.Activity; import android.support.v7.app.AppCompatActivity ; import android.os.Bundle; //注意:这里不能继承AppCompatActivity 不然会报错 public class DialogActivity extends Activity ; } } NormalActivity: package com.example.acticitylifecycletest; import android.support.v7.app.AppCompatActivity ; import android.os.Bundle; public class NormalActivity extends AppCompatActivity { @Override package com.example.acticitylifecycletest; import android.content.Intent; import android.support.v7.app.AppCompatActivity

    63420发布于 2018-12-12
  • 来自专栏Android、鸿蒙开发

    Kotlin学习日志(五)类与对象

    一、类的构造 1.1 类的简单定义 首先来看看在Android中Java的MainActivity public class MainActivity extends AppCompatActivity { ... } 再看看Kotlin中的MainActivity class MainActivity : AppCompatActivity() { ... } 通过上述的代码比较,Kotlin对类的写法与 package com.llw.kotlinstart import androidx.appcompat.app.AppCompatActivity import android.os.Bundle 三、类的继承 我们一开始就提到了类的继承,如class MainActivity : AppCompatActivity(),这和Java是不一样的,那么Kotlin怎么定义基类并由基类派生出子类呢? 下面是Activity中使用代码 package com.llw.kotlinstart import androidx.appcompat.app.AppCompatActivity import

    1.6K20发布于 2020-09-25
  • 来自专栏老欧说安卓

    Android Studio 3.4升级后的运行问题解决办法

    com.android.support:support-v4 androidx.legacy:legacy-support-v4:1.0.0 除了修改support库的路径,还要修改support控件的import导包代码,像AppCompatActivity 原来的import语句是下面这样的: import android.support.v7.app.AppCompatActivity; 启用AndroidX之后,导入AppCompatActivity的代码要改成下面这样 : import androidx.appcompat.app.AppCompatActivity; 详细的support控件的新旧对应关系见下表: 支持控件的旧包名 支持控件的旧包名 android.support.v4 android.support.v4.view.PagerTitleStrip androidx.viewpager.widget.PagerTitleStrip android.support.v7.app.AppCompatActivity androidx.appcompat.app.AppCompatActivity android.support.v7.widget.Toolbar androidx.appcompat.widget.Toolbar

    10.4K31发布于 2019-07-08
  • 来自专栏振兴的Android修炼手册

    Flutter混合开发:启动黑屏处理

    setContentView public class MainActivity extends AppCompatActivity { @Override protected void addView public class MainActivity extends AppCompatActivity { @Override protected void onCreate 检测FlutterView的第一帧 public class MainActivity extends AppCompatActivity { @Override protected void frameLayout.addView(flutterView, layout); } } 在View的post方法中延迟执行FlutterView的添加 public class MainActivity extends AppCompatActivity

    2.9K10发布于 2020-05-29
  • 来自专栏Spring相关

    探究Android活动的小技巧

    android.os.PersistableBundle; import android.support.annotation.Nullable; import android.support.v7.app.AppCompatActivity ; import android.util.Log; public class BaseActivity extends AppCompatActivity{ private static android.os.PersistableBundle; import android.support.annotation.Nullable; import android.support.v7.app.AppCompatActivity ; import android.util.Log; public class BaseActivity extends AppCompatActivity{ private static com.example.activitytest; import android.content.Intent; import android.net.Uri; import android.support.v7.app.AppCompatActivity

    91720发布于 2018-12-13
  • 来自专栏韩曙亮的移动开发专栏

    【Kotlin 协程】协程启动 ③ ( 协程组合并发 | 挂起函数串行执行 | 协程组合并发执行挂起函数 )

    package kim.hsl.coroutine import android.os.Bundle import android.util.Log import androidx.appcompat.app.AppCompatActivity import kotlinx.coroutines.runBlocking import kotlin.system.measureTimeMillis class MainActivity : AppCompatActivity package kim.hsl.coroutine import android.os.Bundle import android.util.Log import androidx.appcompat.app.AppCompatActivity import kotlinx.coroutines.runBlocking import kotlin.system.measureTimeMillis class MainActivity : AppCompatActivity

    94220编辑于 2023-03-30
  • 来自专栏JAVA

    在android studio中启动模拟器的时候报错...keeps shopping

    主要类 public class MainActivity extends AppCompatActivity implements View.OnClickListener{ Button default: break; } } } 引用类(空的 ) public class TOActivity extends AppCompatActivity 希望可以帮到大家 package com.lenovo.myapplication; import android.content.Intent; import android.support.v7.app.AppCompatActivity android.os.Bundle; import android.view.View; import android.widget.Button; public class MainActivity extends AppCompatActivity

    1.2K10编辑于 2024-11-20
  • 来自专栏技术小屋-未分类

    Java——Object类(基本概念、toString()方法、equals()方法、可以接收所有引用类型)

    class Person{} publi classs Person extend Object{} 【举例】:利用Object接收对象 public class MainActivity extends AppCompatActivity 如果用户不想输出编码,而是输出具体内容,可以进行方法 的覆写: public class MainActivity extends AppCompatActivity { @Override 【举例】:实现对象比较 public class MainActivity extends AppCompatActivity { @Override protected void onCreate 【举例】:利用Object接收数组对象 public class MainActivity extends AppCompatActivity { @Override protected 【举例】:Object类接收接口 public class MainActivity extends AppCompatActivity { @Override protected void

    66320发布于 2020-09-25
领券