zoukankan      html  css  js  c++  java
  • Android四大组件之actiivity

     1.Acitivity

      Activity是Android一个非常重要的用户接口(四大组件之一),是可见的,主要是用户和应用程序之间进行交互的接口。在每个Activity中都可以放很多控件,所以也可以把Activity看作控件的容器,简单来说就是Android的UI部分。

     2.Activity生命周期

    • onCreate:主要执行初始化工作,比如用setContentView加载布局界面
    • onStart:Activity由不可见变为可见,但是不在前台,不可以与用户进行交互
    • onResume:使Activity位于返回栈的顶端,并出现在前台,可与用户进行交互
    • onRestart:Activity的重启,由不可见变为可见
    • onPause:表明Activity正在停止,正常情况下onStop会紧接着调用。但是也有特殊情况,若这个时候需要快速的挥刀当前Activity,那么onResume也会被调用。这个方法的执行一定要快,不然会影响栈顶的Activity的使用。
    • onStop:Activity由部分不可见变为完全不可见,可做一些重量级的回收工作,同样不能很耗时。
    • onDestory:销毁Activity并释放资源。

     其中onCreate和onDestory为完整的生命周期,onStart和onStop为可见生命周期,onResume和onPause为前台生命周期。

     3.给按钮添加事件的简单案例

    package com.example.helloworld;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.TextView;
    import android.widget.Toast;
    
    public class MainActivity extends Activity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
           
           Button button = (Button) this.findViewById(R.id.button1);
           button.setOnClickListener(new OnClickListener(){
               public void onClick(View v){
                  //Toast t = Toast.makeText(context, text, duration);
                  /* Context字面意思上下文,Activity中我们直接用this代替,
                   而到了一个button的onClick(View view)等方法时,
                   我们用this时就会报错,改用ActivityName.this,
                   主要原因是因为实现Context的类主要有Android特有的几个模型,
                   Activity、Service以及BroadcastReceiver。*/
                   
                  Toast t = Toast.makeText(MainActivity.this, "哈哈哈", Toast.LENGTH_LONG);
                  t.show();
               }
           });
           
        }
        
    }

    4. 我们可以去activity_main.xml中看xml如何配置的

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:tools="http://schemas.android.com/tools"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      tools:context="${relativePackage}.${activityClass}" >

    <TextView
      android:id="@+id/textView1"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="@string/hello_world" />

    <Button
      android:id="@+id/button1"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_alignParentLeft="true"
      android:layout_below="@+id/textView1"
      android:layout_marginLeft="23dp"
      android:text="你好" />

    <Button
      android:id="@+id/button2"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_alignBaseline="@+id/button1"
      android:layout_alignBottom="@+id/button1"
      android:layout_centerHorizontal="true"
      android:text="Button2" />

    </RelativeLayout>

      

    RelativeLayout

      首先RelativeLayout的意思是指明了这个布局管理器是相对布局,是不是很像DIV的CSS属性。

       xmlns:android="http://schemas.android.com/apk/res/android"

       xmlns:tools="http://schemas.android.com/tools"

        这两句主要是schemas声明,不多解释了啊。

        android:layout_width是设置布局占屏幕的宽度,android:layout_height是设置布局占屏幕的高度,等于号后面的match_parent其实从Android 2.2开始FILL_PARENT改名为MATCH_PARENT 也就是占满屏幕的意思。

    TextView

      下面是TextView里的属性介绍,有两个和上面一样的属性:

      android:layout_width:布局宽度,值是"wrap_content",代表根据内容自动拉伸;

      android:layout_height:布局高度,值是"wrap_content",代表根据内容自动拉伸;

      android:text:这个属性是上面没有的,表示这个Text 的文本,有点类似HTML里input的values属性啊:)值是"@string/hello_world" 这个@string代表的是从res/values/strings.xml里后      面的hello_world在哪里呢?我们来看下代码:

        

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
    
        <string name="app_name">NI Hao</string>
        <string name="hello_world">Hello world!</string>
    
    </resources>

      

      app_name:这个Android应用的名字

      action_settings:这个暂时还不知道是干嘛的,有知道的告诉我哈

      hello_world:这是我们自定义的一个Text

      到此,我们明白了,原来MainActivity可以调用这些资源的。

      

    5.这个歌程序的效果是(左图) 点击你好后(右图)

      

      明天继续!

      

  • 相关阅读:
    配置ssh免密登录
    idea打开项目定位到选择项目的位置
    MySQL decimal、numeric数据类型介绍
    C++ string::size_type类型
    Java Oracle存储过程问题
    PLSQL Developer简单使用教程
    ed2k如何下载
    老毛桃U盘启动盘制作工具安装教程
    Hibernate current_session_context_class的事务说明
    java openSession和getCurrentSession的比较
  • 原文地址:https://www.cnblogs.com/mark0812/p/6072627.html
Copyright © 2011-2022 走看看