Android开发学习之路--Activity之初体验

    环境也搭建好了,android系统也基本了解了,那么接下来就可以开始学习android开发了,相信这么学下去肯定可以把android开发学习好的,再加上时而再温故下linux下的知识,看看android源码,终有一天可以让自己提高到另外一个高度。

    好了,言归正传,真正地开始android开发学习之路了。

    相信很多人都知道android四大组件,它们分别是活动(Activity),服务(Service),广播接收器(Broadcast Receiver)和内容提供器(Content Provider)。这里就先学习下第一个组件Activity。

    一个Activity就类似一个页面,像打开例如拨号、拍照、微信、看地图等。每一个Activity被给予一个窗口,在上面可以绘制用户接口。窗口通常充满屏幕,但也可以小于屏幕而浮于其它窗口之上。

    一个应用程序包含了很多Activities,通常一个应用有一个Main Activity用来启动的时候呈现给用户的第一个界面,每一个Activity可以启动另一个Activity,为了完成不同的功能。每一次一个Activity启动后,前一饿Activity就停止了,但是系统保留Activity在一个栈上。当一个新的Activity启动时,它会被推送到栈顶,取得用户焦点,当用户完成当前Activity然后点击了back按钮,或者toolbar的回退按钮的时候,它就被弹出栈,然后之前的Activity就恢复了。所以我们可以通过Activity的生命周期来实现一些需要的功能,创建,暂停,停止,销毁等,这个在后面再研究。

    就像日历app一样如下图就是两个Activity,第一个是进入到的主界面的Activity,第二个设置的Activity了,当在第二个Activity的时候按back按钮,那么就会销毁第二个Activity,从而恢复到第一个Activity了。

Android开发学习之路--Activity之初体验_第1张图片       Android开发学习之路--Activity之初体验_第2张图片

    讲了这么多原理,其实看得肯定听不知所措的,不管这些了,下面还是在Android Studio下创建一个工程,然后实现简单的Activity功能了,关于Activity还有很多需要学习研究的,后面再慢慢学习好了。

    打开Android Studio软件,然后新建工程,Application name就命名为ActivityStudy,点击next

Android开发学习之路--Activity之初体验_第3张图片

    然后选择sdk,这里我的测试真机是android4.0.3的所以选择了API15,接着点击next

Android开发学习之路--Activity之初体验_第4张图片

    接着就是选择Activity模板了,这个和ios的也有点像,估摸着是学习ios的吧,这里选择一个空的Empty Activity,点击next。

Android开发学习之路--Activity之初体验_第5张图片

    接着就是设置Activity的名字以及layout的xml了。这里命名为FirstActivity,layout命名为activity_first。点击Finish就完成了Activity 的创建了。

Android开发学习之路--Activity之初体验_第6张图片

    然后进入工程如下图:

Android开发学习之路--Activity之初体验_第7张图片

    好了,工程创建完成了,主要和Activity相关的就是FirstActivity.java,AndroidManifest.xml和activity_first.xml了,这些都在篇博文Android开发学习之路--Android Studio项目目录结构简介做过简单的介绍,这里再描述下,当作温故而知新了。

    首先FirstActivity.java,这里继承了AppCompatActivity,需要重写onCreate方法,主要这里只是个Empty Activity,所以也没有什么代码,setContentView函数呢,主要是实现mvc的v。m就是模块,很多代码可以抽象为模块;v就是视图,也就是那个layout的xml,这里就是activity_first.xml了,c是控制,这里也类似于FirstActivity.java了,用来控制显示。

package com.example.jared.activitystudy;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class FirstActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_first);
    }
}
    接着是activity_first.xml,这里就不多做说明了,我们来添加一个button,button是view的一个widget。切换到Desin模式选择Buton,拖到手机的界面当中去,然后切换回Text模式。

Android开发学习之路--Activity之初体验_第8张图片

    看到了xml文件中自动添加了一些代码,然后修改代码如下:

Android开发学习之路--Activity之初体验_第9张图片

    其中android:id就是唯一标识符,这个在代码中需要用到,match_parent主要是填充父view,wrap_content是包含内容。

    最后就是注册AndroidManifest.xml了,这里基本是都是自动生成的,其中有@mipmap/ic_launcher表示的是app的图标。@string/app_name就是app显示的名字,@style/AppTheme是app的主题。这里用的@*符号主要的内容都在res下面。

xml version="1.0" encoding="utf-8"?>
xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.jared.activitystudy" >

            android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme" >
        android:name=".FirstActivity" >
            
                android:name="android.intent.action.MAIN" />

                android:name="android.intent.category.LAUNCHER" />
            
        
    


    其中res下面的mipmap

 Android开发学习之路--Activity之初体验_第10张图片  

    res下面的strings.xml:


    name="app_name">ActivityStudy

    res下面的styles.xml



    
    


    好了,基本的都已经介绍完了,那么接下去就运行下看看效果了。点击运行按钮,弹出了对话框,主要这里我开启了一个模拟器,又连接着真机,这里选择模拟器好截图说明,真机的效果其实也一样的。

Android开发学习之路--Activity之初体验_第11张图片

    运行效果如下图,有没有觉得很奇怪,为什么明明在button的android:text中既有大写又有小些,为什么这里都变成了大写了呢?

Android开发学习之路--Activity之初体验_第12张图片         Android开发学习之路--Activity之初体验_第13张图片

    解决上述办法如下,在最后加上一行textAllCaps="false",运行如上图所示。

    至此,新建一个Activity,以及添加一个button等功能,相信都会操作了。

    很多app都不再显示标题栏的,这里怎么隐藏掉app的标题栏呢?网上有传统的方法就是在在setContentView上面加上如下代码:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.activity_first);
}
    但是这里继承的不是Activity,而是继承了AppCompatActivity,其中AppCompatActivity又继承了Toolbar,所以上述代码编译是没有问题的,一旦运行就会出现异常的,那么正确的做法是什么呢?修改代码如下:

package com.example.jared.activitystudy;

import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class FirstActivity extends AppCompatActivity {

    @Overrid
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //requestWindowFeature(Window.FEATURE_NO_TITLE);
        ActionBar actionBar = getSupportActionBar();
        actionBar.hide();
        setContentView(R.layout.activity_first);
    }
}

    再次运行,就有如下的显示了,标题栏北隐藏掉了。

    Android开发学习之路--Activity之初体验_第14张图片

    好了,Activity先就学习到这里了。接下去再学习别的内容了。

转载于:https://www.cnblogs.com/wuyida/p/6299975.html

你可能感兴趣的:(Android开发学习之路--Activity之初体验)