1.简述一个Activity跳转到另一个Activity时,两个Activity生命周期方法的执行过程。2.编写一个程序,要求在第一个界面中输入两个数字,在第二个界面显示第一个界面两个数字的和。
1.简述一个Activity跳转到另一个Activity时,两个Activity生命周期方法的执行过程。
首先,我创建了一个MainActivity和SecondActivity两个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布局文件:
[code]<?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布局文件:
[code]<?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代码:
[code]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代码:
[code]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"); } }
运行结果:
- 编写一个程序,将两个字符串链接起来,结果取代第一个字符串。要求用方法
- 编写一个程序,要求输入两个浮点数,然后打印出用二者的差值除以二者的乘积所得的结果。在用户非数字的输入之前程序循环处理输入值。
- 8.8编写一个程序,显示提供加法、减法、乘法的菜单,该程序只接受菜单提供的选项,程序提示用户输入两个数字......
- 编写一个Book类,有name和pages两个属性。编写一个BookDemo类,实例化一个Book对象并显示。程序首先有欢迎界面,内容应包含程序作者(姓名、学号)。实例化对象时候,可根据用户输入内容进
- 编写一个程序,要求输入一个整型数N,然后显示一个由N行组成的三角形。在这个三角形中,第一行有一个“*”,以后每行比上一行多两个“*”,三角形像下图这样尖角朝上。
- 编写一个求n个数的平均值及最小值的程序。要求:程序执行时,用户先由键盘输入n的值,之后输入n个数,最后,程序显示平均值和最小值。
- 两个Activity跳转的时候,执行的生命周期方法
- 编写一个程序,用户输入两个数,求其加减乘除,并用消息框显示计算结果。
- 编写一个应用程序,用户分别从两个文本框输入学术的姓名和分数,程序按成绩排序将这些学生的姓名和分数显示在一个文本区中。 程序运行效果如图:
- 编写一个程序,要求用户输入下限整数和一个上限整数,然后,依次计算从下限到上限的每一个整数的平方的加和,最后显示结果
- 7-7 12-24小时制 (15 分) 编写一个程序,要求用户输入24小时制的时间,然后显示12小时制的时间。
- 14、编写一个程序,最多接受10个数字,并求出其中所有正数的和。用户可通过输入999终止程序,统计用户输入的正数个数,并显示这些正数的和。
- 习题:编写一个程序,请输入两个数字,并判断两个数字的大小。
- 使用方法做要求输入第一个数字大于第二个数字
- 3.7 编写一个程序,以字符形式输入某进制的数字,将其转换为十进制数值并显示出
- 编写一个应用程序,用户分别从两个文本框输入学术的姓名和分数,程序按成绩排序将这些学生的姓名和分数显示在一个文本区中
- 2 编写一个应用程序,用户分别从两个文本框输入学生的姓名和分数,程序按成绩排序将这些学生的姓名和分数显示在一个文本区中。 程序运行效果如图:
- 编写一个程序,创建两个8元素的double数组,第一个数组有用户键入8个值,第二个为第一个的累积,例如,第二个数组的第四个元素应该等于第一个数组的前四个元素之和
- 编写一个jsp程序,实现用户登录,当用户输入的用户或密码错误时,将页面重定向到错误提示页,并在该页面显示30秒后 自动回到用户登录界面
- 编写一个学生和教师数据输入和显示程序,学生数据有编号,姓名,班号,和成绩,教师数据有编号,姓名,职称和部门。要求将编号,姓名输入显示设计成一个类person,并作为学生数据类t和教师数据操作类的基类