记录Android自学(1)- MainActivity

什么是Activity?

Activity是一个Android应用程序组件,它提供了一个屏幕,用户可以通过该屏幕进行交互以执行某些操作。
Android应用程序通常由多个彼此松散关联的Activity组成,一般情况下会通过AndroidManifest.xml来指定某个Activity为主Activity(通常命名为MainActivity),即一切Activity的开始,类似C语言中的main函数。

创建MainActivity

在一个空项目中,第一步应该先创建一个MainActivity,并根据需要重写必要的函数。Activity继承于AppCompatActivity,主要的函数如下:

 void	onCreate(Bundle savedInstanceState); //执行所有fragment的初始化操作
 void	onDestroy(); //销毁所有的fragment
 void	onSaveInstanceState(Bundle outState); //保存所有fragment的状态
 void	onStart(); //将onStart()发送到所有fragment
 void	onStop(); //将onStop()发送到所有fragment

其他具体接口可以参考:developer.android

创建布局(layout)

需要创建一个layout文件来定义MainActivity的界面,文件命名为main_activity.xml。重写onCreate函数时需要通过setContentView将MainActivity与main_activity.xml连接起来。

  @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main_activity);
    }

配置AndroidManifest.xml

创建好MainActivity之后,需要在AndroidManifest.xml添加声明来设置MainActivity为主Activity。

 <application>
		<activity
            android:name=".MainActivity"
            android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
 </application>

问题记录

1. Error runing ‘app’:Default Activity not fund.
原因:Android Studio在你创建工程时,不管创建的是不是空工程,默认设置launch是需要一个Default Activity的。
解决方法:
1.首先检查AndroidManifest.xml中的 标签内容是否设置正确,因为正常情况下如果成功设置了MainActivity是不会出现这个问题的。本人出现这个问题的原因就是android.intent.action.MAIN写成了全小写。
2.如果配置确认都没问题,可以选择Android studio ——> File ——> Invalidate Caches/restart… ——> Invalidate and Restart。
3.如果以上都不行的话, 选择“app”下拉框的“Edit Configurations”, launch选择nothing或者MainActivity。

如果你的项目中没有`MainActivity.java`文件,那通常是Android项目的入口点,用于管理应用程序的主要活动。每个Android应用都需要至少一个主活动,它负责接收用户的界面交互,并启动其他必要的组件。 在Android Studio创建新项目时,会自动生成`MainActivity.java`,其中包含了布局文件的引用、生命周期方法以及一些基本的事件监听器。例如,以下是创建`MainActivity`的基本框架: ```java package com.example.yourapp; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; public class MainActivity extends AppCompatActivity { private Button yourButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 设置布局 yourButton = findViewById(R.id.your_button_id); // 获取布局内的控件 yourButton.setOnClickListener(new View.OnClickListener() { // 绑定按钮点击事件 @Override public void onClick(View v) { // 在此处添加按钮被点击后的操作 } }); } @Override protected void onStart() { super.onStart(); // 开始执行主Activity // 其他启动时的操作 } @Override protected void onStop() { super.onStop(); // 结束执行主Activity // 关闭资源或其他清理工作 } } ``` 如果找不到`MainActivity.java`,你需要检查是否在项目的`src/main/java`目录下,或者是否误删或忘记导入。如果你新建了一个项目,确保选择了正确的模板(例如Empty Activity或Basic Activity等),这些都会生成相应的`MainActivity`。如果你从旧项目迁移而来,可能需要手动创建或从备份中恢复该文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值