之前虽然我们已经完成了HelloWorld activity的创建,但那主要是AS来帮助我们完成的,所以这次就来手动创建一个activity

android studio创建项目报错 android studio创建不了activity_android 创建文件夹

新建项目

新建项目的步骤跟之前一样,只不过在选择activity类型的时候,要选择

Add No Activity,这样创建出来的项目才是没有activity的项目


android studio创建项目报错 android studio创建不了activity_android弹出窗口_02

然后就是输入项目名称、选择语言等操作


android studio创建项目报错 android studio创建不了activity_android 创建文件夹

手动创建活动

把AS的项目结构切换成

Project模式由于当前项目中没有activity,所以com.example.activitytest文件夹是空的


android studio创建项目报错 android studio创建不了activity_android弹出窗口_04

右键点击

com.example.activitytest-->New-->Activity-->Empty Activity ,会弹出一个新建activity的对话框注意

不要勾选Generate Layout File 和 Launcher Activity这两个选项,因为布局文件等会需要手动创建


android studio创建项目报错 android studio创建不了activity_android 创建文件夹_05

创建好了之后就可以在项目目录下看到新建的activity了


android studio创建项目报错 android studio创建不了activity_android弹出窗口_06

android studio创建项目报错 android studio创建不了activity_android 创建文件夹

创建布局文件

每一个activity都对应着一个布局,布局就是用来显示界面内容的,现在就来创建一个布局文件在

res文件加上

右键-->New-->Directory,会弹出一个新建目录的窗口,输入名称layout


android studio创建项目报错 android studio创建不了activity_android 创建文件夹_08

然后在

layout目录上

右键-->Layout resource file,弹出一个新建布局资源文件的窗口,输入好名称,根元素默认选择LinearLayout


android studio创建项目报错 android studio创建不了activity_android 创建文件夹_09

完成之后,就可以看到新创建的布局文件了


android studio创建项目报错 android studio创建不了activity_android 创建文件夹_10

每个布局文件都有两种模式,一种是

Design模式,也是就是图片中的这种可视化模式,还有一个

Text,通过xml文件的方式来编辑布局这就是Text模式下的布局文件:


android studio创建项目报错 android studio创建不了activity_android弹出窗口_11

接下来我们在activity中添加一个按钮,在布局文件中添加如下代码:


<Button        android:id="@+id/button_1"        android:text="Button 1"        android:layout_width="match_parent"        android:layout_height="wrap_content"        />
    <Button
        android:id="@+id/button_1"
        android:text="Button 1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        />
  • android:id

给当前元素定义了一个唯一的标识符,之后可以在代码中通过这个元素进行操作


  • android:text

指定了元素中显示的文字内容


  • android:layout_width

指定了当前元素的宽度,match_parent表示和当前元素的父元素一样宽


  • android:layout_height

指定了当前元素的高度,wrap_content表示当前元素的高度只要能刚好包含里面的内容就行此时activity中的界面是这样子的:按钮的宽度和父元素一样宽,高度刚好包含了里面的文字


android studio创建项目报错 android studio创建不了activity_android弹出窗口_12

 


android studio创建项目报错 android studio创建不了activity_android 创建文件夹

在activity中加载布局

这个时候回到主界面的代码,添加一行:


android studio创建项目报错 android studio创建不了activity_android弹出窗口_14

这里调用了

setContentView()方法来给当前的活动加载一个布局,这个方法的参数一般都是传入一个布局文件的id。在项目中添加的任何资源都会在R文件中生成一个相应的资源id,我们之前添加的first_layout.xml布局的id现在已经添加到R文件中了。较新版本的AS已经把R文件隐藏起来了,所以现在在项目目录是找不到这个文件的


android studio创建项目报错 android studio创建不了activity_android 创建文件夹

在AndroidManifest文件中注册

所有的活动都需要在AndroidManifest文件中进行注册才能生效实际上我们的第一个activity:MainActivity已经在AndroidManifest中注册过了在创建好这个activity的时候,AS就自动帮我们在AndroidManifest注册了活动的注册声明要放在标签内,这里是通过标签 来对活动进行注册的android:name指明了具体注册哪一个activity仅仅是注册了活动,我们的app还是不能运行起来的,因为还没有配置主活动配置主活动的方法就是在标签内部加入标签,并在这个标签里面添加下面两行代码:


<action android:name="android.intent.action.MAIN"/><category android:name="android.intent.category.LAUNCHER"/>

总体效果:


android studio创建项目报错 android studio创建不了activity_android 创建文件夹_16

现在MainActivity就成了这个程序的主活动了,也就是在手机的桌面点击app的图标时,首先启动的就是这个activity如果一个app没有声明任何activity作为主activity,这个程序也是可以安装的,但是无法在启动器中看到或者打开这个程序。这种程序一般是作为第三方服务供其他应用内部进行调用的,比如作为一些服务来运行一切准备就绪,来运行一下这个程序吧运行结果:


android studio创建项目报错 android studio创建不了activity_android弹出窗口_17

以上就是手动创建一个activity的全部内容了


android studio创建项目报错 android studio创建不了activity_android弹出窗口_18