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

来源:互联网 发布:linux 复位USB 编辑:程序博客网 时间:2024/05/20 05:30

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.注册活动。
  1. 创建活动
          在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);    }
  2. 创建布局

            在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按钮显示的文字。

  3. 活动中加载这个布局

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

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

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

  4. 在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(),就可以销毁当前活动了。比较简单,不贴代码了。




原创粉丝点击