1.简述一个Activity跳转到另一个Activity时,两个Activity生命周期方法的执行过程。2.编写一个程序,要求在第一个界面中输入两个数字,在第二个界面显示第一个界面两个数字的和。

1.简述一个Activity跳转到另一个Activity时,两个Activity生命周期方法的执行过程。

首先,我创建了一个MainActivitySecondActivity两个Activity。我在两个Activity中都加入了七个方法,并加入了打印语句。在MainAcitivity中为按钮增加事件,点击第一个界面的按钮跳转到第二个Activity。

运行程序,我们从日志信息可以看出: 启动MainActivity依次执行了onCreate()、onStart()、onResume()方法,当跳转到SecondActivity时,MainActivity会执行onPause()方法,此时SecondActivity会依次执行onCreate()、onStart()、onResume()方法。这时候MainActivity会执行onStop()方法

 

SecondActivity再次返回到MainActivity时,SecondActivity会先执行onPause()方法,然后MainActivity会依次执行onRestart()、onStart()、onResume()方法,随后SecondActivity执行onstop()方法和onDestory()方法。如果退出应用程序,则MainActivity会执行onStop()方法,然后执行onDestory()方法。

2.编写一个程序,要求在第一个界面中输入两个数字,在第二个界面显示第一个界面两个数字的和。

在activity_main.xml中布置好界面,其中输入的文本框选择的是EditText组件。布局是线性垂直布局中套用两个线性水平布局的方式。

activity_main.xml布局文件:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 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"
    tools:context="com.example.administrator.studylife.MainActivity">
    <LinearLayout
        android:layout_width="368dp"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:orientation="vertical">
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp">
            <TextView
                android:id="@+id/textView2"
                android:layout_width="wrap_content"
                android:layout_height="40dp"
                android:text="数字A:"
                android:textColor="@android:color/background_dark"
                android:textSize="18sp" />
            <EditText
                android:id="@+id/editText3"
                android:layout_width="match_parent"
                android:layout_height="50dp"
                android:layout_marginLeft="15dp"
                android:hint="请输入第一个数字"/>
        </LinearLayout>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp">
            <TextView
                android:id="@+id/textView3"
                android:layout_width="wrap_content"
                android:layout_height="40dp"
                android:text="数字B:"
                android:textColor="@android:color/background_dark"
                android:textSize="18sp" />
            <EditText
                android:id="@+id/editText4"
                android:layout_width="match_parent"
                android:layout_height="50dp"
                android:layout_marginLeft="15dp"
                android:hint="请输入第二个数字"/>
        </LinearLayout>
    </LinearLayout>
    <Button
        android:layout_width="190dp"
        android:layout_height="81dp"
        android:text="计算(A+B)"
        android:textSize="25dp"
        android:id="@+id/btnGo"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintHorizontal_bias="0.407"
        app:layout_constraintVertical_bias="0.274" />
</android.support.constraint.ConstraintLayout>

在activity_second.xml中定义一个TextView负责显示数据。

activity_second.xml布局文件:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 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"
    tools:context="com.example.administrator.studylife.SecondActivity">
    <LinearLayout
        android:layout_width="368dp"
        android:layout_height="wrap_content"
        tools:layout_editor_absoluteY="0dp"
        tools:layout_editor_absoluteX="8dp">
        <TextView
            android:id="@+id/show_conntent"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:textSize="18sp"
            android:text="TextView"/>
    </LinearLayout>
</android.support.constraint.ConstraintLayout>

给两个EditText组件和一个按钮组件添加监听事件,当点击按钮时,将数字之和的值传递到SecondActivity中,因为直时传递一个值,所以两数字相加的过程就必须在MainActivity中完成。需要考虑的是,输入的应该是个数字,而不是字符,输出的又是字符,所以需要进行String和int的转化。

       MainActivity.java代码:

package com.example.administrator.studylife;

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

import org.w3c.dom.Text;

public class MainActivity extends AppCompatActivity {
    private EditText str1;
    private EditText str2;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Log.i("Aty1" ,"执行onCreate");
        Button btn=(Button) findViewById(R.id.btnGo);
        str1=(EditText)findViewById(R.id.editText3);
        str2 =(EditText)findViewById(R.id.editText4);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String str = null;
                switch (view.getId()) {
                    case R.id.btnGo:
                        int i1 = Integer.parseInt(String.valueOf(str1.getText()));
                        int i2 = Integer.parseInt(String.valueOf(str2.getText()));
                        int sum = i1 + i2;
                        str = Integer.toString(sum);
                        Intent intent = new Intent(MainActivity.this, SecondActivity.class);
                        intent.putExtra("sum", str);
                        startActivity(intent);
                }
            }
        });
    }
    @Override
    protected void onStart() {
        super.onStart();
        Log.i("Aty1" ,"执行onStart");
    }
    @Override
    protected void onRestart() {
        super.onRestart();
        Log.i("Aty1" ,"执行onRestart");
    }
    @Override
    protected void onResume() {
        super.onResume();
        Log.i("Aty1" ,"执行onResume");
    }
    @Override
    protected void onPause() {
        super.onPause();
        Log.i("Aty1" ,"onPause");
    }
    @Override
    protected void onStop() {
        super.onStop();
        Log.i("Aty1" ,"执行onStop");
    }
    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.i("Aty1" ,"执行onDestroy");
    }
}

SecondActivity.java代码:

package com.example.administrator.studylife;

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

public class SecondActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);
        Log.i("Aty2" ,"执行onCreate");
        Intent intent=this.getIntent();
        String sum=intent.getStringExtra("sum");
        TextView show_conntent=(TextView)findViewById(R.id.show_conntent);
        show_conntent.setText("A+B="+sum);
    }
    protected void onStart() {
        super.onStart();
        Log.i("Aty2" ,"执行onStart");
    }
    @Override
    protected void onRestart() {
        super.onRestart();
        Log.i("Aty2" ,"执行onRestart");
    }
    @Override
    protected void onResume() {
        super.onResume();
        Log.i("Aty2" ,"执行onResume");
    }
    @Override
    protected void onPause() {
        super.onPause();
        Log.i("Aty2" ,"onPause");
    }
    @Override
    protected void onStop() {
        super.onStop();
        Log.i("Aty2" ,"执行onStop");
    }
    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.i("Aty2" ,"执行onDestroy");
    }
}

运行结果:

 

 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值