欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Android-Activity的基本介绍和页面之间数据传递

程序员文章站 2022-05-14 08:14:02
...

Activities 是一个程序的组件之一。它的主要功能是提供界面。

Android-Activity的基本介绍和页面之间数据传递


1.启动Activity:系统会先调用onCreate方法,然后调用onStart方法,最后调用onResume,Activity进入运行状态。
2.当前Activity被其他Activity覆盖其上或被锁屏:系统会调用onPause方法,暂停当前Activity的执行。
3.当前Activity由被覆盖状态回到前台或解锁屏:系统会调用onResume方法,再次进入运行状态。
4.当前Activity转到新的Activity界面或按Home键回到主屏,自身退居后台:系统会先调用onPause方法,然后调用onStop方法,进入停滞状态。
5.用户后退回到此Activity:系统会先调用onRestart方法,然后调用onStart方法,最后调用onResume方法,再次进入运行状态。
6.当前Activity处于被覆盖状态或者后台不可见状态,即第2步和第4步,系统内存不足,杀死当前Activity,而后用户退回当前Activity:
再次调用onCreate方法、onStart方法、onResume方法,进入运行状态。
7.用户退出当前Activity:系统先调用onPause方法,然后调用onStop方法,最后调用onDestory方法,结束当前Activity。

2.实现页面的传递数据

2.1写两个xml文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.zking.administrator.g160628_android12_activity.MainActivity">

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="请输入用户名:"
        android:id="@+id/et_main_uname"
        />

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="确认"
        android:onClick="writeThink"
        />
</LinearLayout>

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.zking.administrator.g160628_android12_activity.ThinkActivity">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/tv_think_showName"
        />
</LinearLayout>


package com.zking.administrator.g160628_android12_activity;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;

import com.zking.entity.Person;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {

    private EditText et_main_uname;
    private TextView tv_main_showThink;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        et_main_uname = (EditText) findViewById(R.id.et_main_uname);
        tv_main_showThink = (TextView) findViewById(R.id.tv_main_showThink);
    }

    public void writeThink(View view){
         String uname=et_main_uname.getText().toString();
         Intent intent=new Intent(this,ThinkActivity.class);
        //传递基本数据类型,把值加入到intent中
         intent.putExtra("uname",uname);
        intent.putExtra("uage",19);
         startActivity(intent);
  
    }

}
2.2在另为一个界面获取他存进去的值。
package com.zking.administrator.g160628_android12_activity;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;

import com.zking.entity.Person;

import java.util.List;

public class ThinkActivity extends AppCompatActivity {

    private TextView tv_think_showName;

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

        tv_think_showName = (TextView) findViewById(R.id.tv_think_showName);

        //获取第一个页面传递过来的数据
        String uname=getIntent().getStringExtra("uname");
        int uage=getIntent().getIntExtra("uage",0);
	//设置到TextVIew文本中
	tv_think_showName .setText("姓名:"+uname+"年龄:"+uage);
    }
}