【安卓学习】1.活动-写第一个安卓项目

xiaoxiao2021-02-28  81

2.1 活动是什么?

        活动(Activity),包括用户界面的组件,主要用于跟用户交互。个人理解,就是展示给用户看的东西。一个程序可以有零个或多个活动(正常展示给用户的app至少有一个活动)。

2.2 Android Studio创建活动

        首先,我们打开Studio,选择创建一个新的安卓项目         然后给自己app起个名字(Application name),以及公司名(Company name),因为我是个人开发者,所有就默认使用软件自己生成的名。(因为我之前已经创建了名为Application01的项目,因此下面会报红)。          然后选择项目最低兼容版本,因为现在大家基本都是4.0以上了,因此选API 15。另外下面分别为:Wear(穿戴设备),TV(电视),Android Auto(汽车程序)。暂时忽略吧。         接下来可以选择一个模板。第一次可以选择一个Empty,空的。然后finish,就可以调试运行了。现在我们感受一下创建自己的活动,因此这里选择add no activity。然后finish。         项目创建成功后,默认的是Android模式,按照书本的教学,切换到Project模式。         接下来,创建我们自己的活动(activity)。总共四个步骤:1.创建活动,2.创建布局,3.在活动中加载布局,4.注册活动。 创建活动       在app/scr/main/java下面的包下,->New->Activity->Empty Activity,会弹出创建活动。我们命名为FirstActivity,注意不要勾选Generate Layout File与Launcher Activity。rate...表示会自动给我们FirstActivity创建一个布局文件,Launcher Activity会自动将当前活动(FirstActicity)设置为主活动。因为我们现在要体验文件之间关系,因此这些自动创建的就不要勾选。然后点击finish。         这里,需要知道的一点是:项目的任何活动都需要重写OnCreate方法。Studio已经帮我们完成了: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.first_layout); } 创建布局

        在app/src/main/res目录->New -> Directory,创建一个目录,取名layout。然后对着layout ->Layout resource file,弹出对话框中,将布局文件命名为first_layout,根元素默认选择LinearLayout,点击OK。

        在布局中添加一个Button:

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <Button android:id="@+id/button_1" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Button_1" /> </LinearLayout>

        其中,Button代表我们添加的是一个Button按钮。android:id是给这个控件指定一个唯一的标识符,之后可以在代码对这个元素进行操作。后面android:layout_width指定了button的宽度,match_parent说与父元素一样宽,android:layout_height指定了button高度,wrap_content则代表刚好能展示里面文字的高度。text则为button按钮显示的文字。

活动中加载这个布局

        接下来,需要在活动中(FirstActivity)加载这个布局:

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.first_layout); }          可见,只需要setContentView()方法,则可以完成。项目的任何资源文件都会在R文件中生成一个对应资源的id,因此只需要调用R.id.first_layout就可以得到布局的id,然后传入setContentView方法中。

在AndroidManifest中注册

fffffff

<application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".FirstActivity" android:label="This is my first APP"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> </application>

        其实,studio已经帮我们注册过了,我在里面又按照自己情况添加了一点代码:

        首先,设为主活动的代码(即告诉软件,启动这个项目的时候,那个活动是第一个加载的活动),<intent-filter/>中的代码完成这个功能。

        l另外,label的功能是,显示这个页面的时候,标题栏的内容,个人认为类似与浏览器的标签栏。

至此,我们已经完成一个最简单的安卓项目了,启动运行看一下吧。

2.3 活动中使用Toast

        这个比较简单,当然也比较实用。

        首先介绍一下Toast。这是安卓系统中比较好的一种提醒方式,在系统中,以短小的信息通知给用户,而且过段时间就会消失,不占用屏幕资源。个人感觉比较使用,比如我们可以借用这个来判断点击某个按钮是否有效果,是否返回了资源等等。

用法也比较简单,类似与java的System.out.println()一样,我们在需要显示的地方敲入代码,例如:

String resultData = data.getStringExtra("data"); Toast.makeText(FirstActivity.this, resultData, Toast.LENGTH_SHORT).show(); 主要是第二行,通过makeText静态方法创建出一个Toast对象,然后调用show方法显示出来就可以了。

makeText需要三个参数:第一个参数是Context,上下文,活动本身就是一个上下文,因此这里我直接传入FirstActivity.this。第二个参数是Toast要显示的内容。第三个参数是显示时长,有几个内置常量可以选择:Toast.LENGTH_SHORT和Toast.LENGTH_LONG。

运行结果就不粘了。

2.4 使用Menu菜单

安卓中,有一些菜单,就例如微信右上角点击"+"号之后弹出菜单类似功能。安卓本身提供了类似的功能,因此实现比较简单。 首先,我们在res目录下创建一个menu文件夹,然后可以直接创建一个菜单文件 -> Menu resource file,名字我输入main。 然后再main.xml中写入如下代码: <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/add_item" android:title="add" /> <item android:id="@+id/remove_item" android:title="remove" /> </menu> 安卓中,菜单项可以用<item>标签创建,然后id中指定一个id,通过text设置这个选项的内容。 接下来我们需要去activity中重写一个方法onCreateOptionsMenu,目的是要菜单能够显示出来: @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return true; } getMenuInflate方法可以得到MenuInfalte对象,然后调用inflate就可以创建菜单了。这里需要传入两个参数:第一个参数是告诉系统,需要通过那个资源文件夹来创建菜单;第二个参数是指定我们的菜单项添加到哪一个Menu对象当中,这里我们使用方法中传入的参数menu。然后让方法返回true,表示创建的菜单显示出来,如果返回false则不会显示出来了。 当然,菜单只显示出来还是不够的,还需要能点击,然后有对应的活动。这时需要我们重写onOptionsItemSelected()方法。 @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.add_item: Toast.makeText(this, "Add", Toast.LENGTH_SHORT).show(); break; case R.id.remove_item: Toast.makeText(FirstActivity.this, "Remove", Toast.LENGTH_SHORT).show(); break; default: } return true; } 代码比较简单,通过抵用item.getItemId()方法判断我们点击的是哪个菜单,然后做出相应的动作。这里我用了之前的Toast。

2.5销毁一个活动

其实就是我们使用一般安卓应用时,点击Back键功能。如果想自己实现,则可以添加一个Button,然后添加监听事件,在点击按钮之后,执行一个方法finish(),就可以销毁当前活动了。比较简单,不贴代码了。

转载请注明原文地址: https://www.6miu.com/read-63132.html

最新回复(0)