Android中Activity与AppCompatActivity的理解

  

  不知道大家有没有发现,当使用Eclipse开发Android应用的时候,当创建项目的时候,MainActivity自动继承的是Activity,而在使用Android Studio开发Android应用的时候,创建项目时,自动继承的是AppCompatActivity。我们分别用Eclipse与AS创建项目并运行,发现继承的父类不一样,但是运行出来的界面是一样的,如下图所示:



大家可以看到在界面最上面会出现一个ActionBar,默认显示项目的名称Toolbar。下面我们将AS项目中的父类AppCompatActivity手动替换成Activity试试看。


public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}
修改AppCompatActivity为Activity,并导入相应的包。这样我们的项目代码在Eclipse与AS的就保持一致了,运行一下看看效果。


程序运行后,大家可以发现顶部的ActionBar不见了,代码中都是继承Activity的,但是运行出来的界面确不一样,所以在AS中创建项目的时候,自动继承的是AppCompatActivity。


ActionBar向前 兼容,出现在support v7里,如果需要使用兼容版的actionbar,则继承support v7提供的ActionBarActivity(它是继承FragmentActivity的)。当推出Android 5.0之后,提供了很多很多新东西,于是support v7也更新了,出现了AppCompatActivity。 AppCompatActivity是用来替代ActionBarActivity的,如果当你把代码中的父类改为ActionBarActivity时,会发现提示已经过时。

下一篇介绍Toolbar的用法


Android Studio main 方法是不存在的,因为 Android 开发使用的是事件驱动模型,而不是传统的主函数入口。但是,可以在 Android 开发找到类似于 main 方法的入口点,该入口点通常是在 Activity 类的 onCreate() 方法。 下面是一个简单的示例,展示了一个 Activity 类的 onCreate() 方法的一些常见代码: ```java public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 获取 UI 控件 TextView textView = findViewById(R.id.text_view); Button button = findViewById(R.id.button); // 设置事件监听器 button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 处理按钮点击事件 textView.setText("Hello, world!"); } }); } } ``` 在这个示例,onCreate() 方法是 Activity 类的入口点,它在 Activity 启动时被调用。在这个方法,我们首先调用了父类的 onCreate() 方法,然后使用 setContentView() 方法设置布局文件。接下来,我们获取了 UI 控件,设置了按钮的点击事件监听器,并在监听器处理了按钮点击事件。 需要注意的是,Android 开发的主要代码逻辑通常是分散在多个类和方法的,而不是集在一个 main 方法。因此,要理解 Android 应用程序的整个代码结构,需要掌握多个类和方法的作用和关系。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值