注意: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
在as上新建项目时我们会发现activity会自动继承AppCompatActivity,它继承至FragmentActivity,查看AppCompatActivity源码我们会发现,以前FragmentActivity
背景 故事是这样开始的 有一天,我发现自己写的布局没有 按照我的想法打印 带上了莫名其妙的开头 有一天,两个年轻人,不讲武德 非要告诉我这是 AppCompatActivity 的原因 我不信...好吧,我再从 背景 说一遍 正如上面所述,AppCompatActivity 有自己特定的容器 layout,如果在设计时,让它直接替代了Activity的默认根容器,就意味着 AppCompatActivity...所以正因为如此,AppCompatActivity 里的 DecorView 变量名叫做 mSubDecor,而我们基础 PhoneWindows 里的叫做 mDecor,再想想为什么AppCompatActivity...具体如下图所示: 检查层级我们就会发现,原来AppCompatActivity 是在原 Activity 布局层级上嵌套的,正如上面所描述,是不是有种ohhhh,就这啊的感觉。...哦呵呵呵,原来这里是对我们的默认的 View 进行了替换,这也就是为什么我们使用AppCompatActivity 打印出来的子 View 自带了前缀显示。
而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
关键原因在于,我在Android Studio 1.5里面新建的工程Activity默认是继承自AppCompatActivity类。...在那篇帖子里面提到了一些解决方法:(1)要么把基类从AppCompatActivity(或者ActionBarActivity)改成Activity。...这个类在现在的SDK中已经被废弃使用了,从源代码来看,ActionBarActivity现在就是继承自AppCompatActivity的一个空类,紧紧是为了向下兼容考虑。...那么,AppCompatActivity新在哪里呢?根据文档说明,AppCompatActivity是一个设计实现的更通用的类,内部使用了AppCompatDelegate作为逻辑实现核心。...有时你可能想在一个旧版本的Activity(既不是继承自ActionBarActivity又不是继承AppCompatActivity的类)中使用Material Design的组件。
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
发现最终累加不足 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
这篇文章将深入探索 AppCompatActivity 的 视图加载 过程。 Factory2 在 Android 中,我们经常在 xml 文件中书写布局。...AppcompatActivity 和 Factory2 如果把上面的 FactoryActivity 修改为继承 AppCompatActivity ,我们会看到 TextView 确实变成了 RedTextView...所以 Button 没有发生变化的原因是,已经设置过了 Factory,导致 AppcompatActivity 自己的 factory 没有被 install。...如果不是的话,当父类是 AppcompatActivity ,setFactory2 会抛出异常。因为 AppCompatActivity 设置了自己的 Factory 。...如何兼容 AppCompatActivity 的 Factory2 如何既能使用自己的 Factory2,又能让 AppCompatActivity 保留自己的 Facotory 呢?
在协程任务中抛出异常 , 查看异常的抛出点 ; 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
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()
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
栗子 目标代码: 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
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
一、类的构造 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
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
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
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
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 android.util.Log import androidx.appcompat.app.AppCompatActivity...kotlinx.coroutines.* import java.io.BufferedReader import java.io.FileReader class MainActivity : AppCompatActivity...package kim.hsl.coroutine import android.os.Bundle import android.util.Log import androidx.appcompat.app.AppCompatActivity...kotlinx.coroutines.* import java.io.BufferedReader import java.io.FileReader class MainActivity : AppCompatActivity
贴一下它的主要代码: public class MainActivity extends AppCompatActivity { /** * Activity启动的时候调用...savedInstanceState); setContentView(R.layout.activity_main); } } 它有以下关键点: 1.MainActivity继承自类AppCompatActivity...AppCompatActivity 从名字来看,Compat的意思是兼容,那么它的意思是App兼容Activity。...我们来跟踪一下AppCompatActivity的源码: 1.键盘长按Ctrl键,鼠标左键点击AppCompatActivity,AS会带我们来到AppCompatActivity类所在的源码位置;...2.我们发现,AppCompatActivity继承自FragmentActivity,继续跟踪下去,键盘长按Ctrl键,鼠标左键点击FragmentActivity; 3.我们来到了FragmentActivity
看看你的Activity是继承自Activity还是AppCompatActivity。...getActivity().getActionBar().setDisplayHomeAsUpEnabled(true); 如果继承自AppCompatActivity,那么主题文件中需要使用AppCompatTheme...,同时获取ActionBar的方法需要用getSupportActionBar(),如下: ((AppCompatActivity)getActivity()).getSupportActionBar(
领取专属 10元无门槛券
手把手带您无忧上云