• 2020/2/12学习总结


    今天学习了关于Activity的基础内容

    1.Activity是什么

    Android中有四大组件(Activity活动,Service服务,ContentProvider内容提供者,BroadcastReceiver广播接收器),Activity是我们用的最多也是最基本的组件,因为应用的所有操作都与用户相关,Activity提供窗口来和用户进行交互。

    2.创建Activity

    2.1要创建一个Activity首先要继承Activity类,然后必须要实现onCreat()方法。实现内初始化Activity的必需组件。在此方法内调用setContentView(),以定义Activity用户界面的布局。

    2.2创建此Activity的布局页面

    2.3AndroidMainfest.xml中进行Activity的注册

    activity/android:name:要注册的Activity 的全限定类名
    activity/android:label:Activity 左上角显示的名称
    
    intent-filter:叫意图过滤器,一般用于隐式启动该Activity
    action/android:name:意图过滤器的Action 名称,可以自定义也可以使用系统提供的。
    category/android:name:意图过滤器的category 名称,只能使用系统提供的常量值。

    3.Avtivity的跳转
     Button bt = (Button) findViewById(R.id.bt);
            bt.setOnClickListener(new OnClickListener() {
    
                @Override
                public void onClick(View v) {
    
                    //创建需要启动的Activity对应的Intent
                    Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
                    //启动intent对应的Activity
                    startActivity(intent);
                }
            });
    
    
    

     为按钮设置监听,在点击后进行跳转。Activity之间的跳转是通过Intent实现的。

    4.Activity之间的数据传输

      当一个Activity启动另一个Activity时,常常会有一些数据需要传过去。这时Intent就相当于一个“信使”,我们将需要传送的数据存入Intent中即可。、

    Intent提供了多个方法来“携带”额外的数据,如下所示。

    • putExtras(Bundle data):向Intent中放入需要“携带”的数据包。

    • Bundle getExtras():取出Intent中所“携带”的数据包。

    • putExtra(String name,Xxx value):向Intent中按key-value对的形式存入数据。

    • getXxxExtra(String name):从Intent中按key取出指定类型的数据。

    上述方法中的Bundle就是一个简单的数据携带包,该Bundle对象包含了多个方法来存入数据。

    • putXxx(String key, Xxx value):向Bundle中放入Int、Long等各种类型的数据。

    • putSerializable(String key, Serializable data):向Bundle中放入一个可序列化的对象。

    • getXxx(String key):从Bundle中取出Int、Long等各种类型的数据。

    • getSerializable(String key):从Bundle中取出一个可序列化的对象。

    
    
    public class FirstActivity extends Activity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
            setContentView(R.layout.first_layout);
    
            Button bn = (Button) findViewById(R.id.bn);
            bn.setOnClickListener(new OnClickListener() {
    
                @Override
                public void onClick(View v) {
    
                    EditText name = (EditText) findViewById(R.id.name);
                    EditText passwd = (EditText) findViewById(R.id.passwd);
                    RadioButton male = (RadioButton) findViewById(R.id.male);
                    String gender = male.isChecked() ? "男" : "女";
                    Person p = new Person();
                    p.setName(name.getText().toString());
                    p.setPasswd(passwd.getText().toString());
                    p.setGender(gender);
    
                    //创建一个Bundle对象
                    Bundle data = new Bundle();
                    data.putSerializable("person", p);
                    //创建一个Intent
                    Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
                    intent.putExtras(data);
                    //启动intent对应的Activity
                    startActivity(intent);
                }
            });
        }
    }
    
    
    
    
    public class SecondActivity extends Activity {
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
            setContentView(R.layout.seconde_layout);
    
            TextView name = (TextView) findViewById(R.id.name);
            TextView passwd = (TextView) findViewById(R.id.passwd);
            TextView gender = (TextView) findViewById(R.id.gender);
            //获取启动该Activity的Intent
            Intent intent = getIntent();
            //直接通过Intent取出它所携带的Bundle数据包中的数据
            Person p = (Person) intent.getSerializableExtra("person");
            name.setText("您的用户名为:" + p.getName());
            passwd.setText("您的密码为:" + p.getPasswd());
            gender.setText("您的性别为:" + p.getGender());
        }
    }
    
    

    5.生命周期

    activity的4种状态
    (1)running:activity处于栈顶,处于活动状态,用户点击屏幕,屏幕可以做出响应
    (2)paused:失去焦点,用户点击屏幕没有响应,状态信息和成员变量还存在,但是内存紧张时被销毁。
    (3)stopped:完全被覆盖,状态信息和成员变量也还存在,但是内存紧张时也会被销毁。
    (4)killed:activity已经被系统回收掉了,状态信息和成员变量都已经不在了

     

  • 相关阅读:
    数据库事务隔离级别+Spring 声明性事务隔离级别
    (面试题)如何查找Oracle数据库中的重复记录
    Spring提供的线程池支持--百度文库
    (面试题)输出下列程序结果(考察字符串与其他类型+连接)
    (面试)有两个木桶,一个3斤,一个5斤,水无限,要怎么样得到精确地4斤水
    (面试)涉及到继承和类加载
    (面试题)用折半查找法在一组整形数组中查找某个数据
    (面试)写出下面switch语句的输出结果
    HTML 鼠标坐标和元素坐标
    HTML5 元素属性介绍
  • 原文地址:https://www.cnblogs.com/wangzhaojun1670/p/12304638.html
Copyright © 2020-2023  润新知