Android初始篇二 Android四大组件之Activity

来源:互联网 发布:mac装win10后启动黑屏 编辑:程序博客网 时间:2024/06/05 20:52

 



Android 四大组件 分别是:     

    1. activity ( 活动)

    2. Service ( 服务 )

    3. Broadcast Receiver ( 广播接收器 )

    4. Content Provider ( 内容提供者 )


   我打算用四篇文章说明:

     今天先用 Activity (活动) ,做出下面的效果,


   先了解 Activity ( 活动 ) ,分下面一 一介绍:

  

      1. activity 的概念.

      2. Activity 的三种状态

      3. Activity 生命周期的七个方法

      4. Activity 的操作

      5. Activity 的数据传递

1>.activity的概念:

     Activity 是四大组件中最常用的.程序Activity通常的表现形式是一个单独的界面( screen ) .每个Activity都是一个单独的类,它扩展实现了Activity基础类.这个类显示为一个由Views组成的用户界面,并响应事件,每个界面都是一个Activity , 切换到另一个界面就是载入一个新的Activity .

 

2>   Activity 的三种状态:

         (1). 活动状态:如打开程序的页面

         (2). 停止状态:如打开程序的页面,回到页面,

         (3). 暂停状态:要清理手机缓存的时候,还没有清理时的状态


3>   Activity 生命周期的七个方法:


 1.protected void onCreate( Bundle savedInstanceState){ }方法: 这是一个Activity 实例被启动时调用的第一个方法

 2.protected void onStart(){ }方法:该方法在 onCreate()方法之后被调用,或者在Acivity从Stop状态转换为Active状态时被调用

 3.protected void onResume(){ }方法:在Activity从Active 状态转换到Pause状态时被调用.

 4.protected void onPause(){ }方法:暂停Activity 时被回调

 5.protected void onStop(){ }方法: 在Activity 从 Active 状态转换到Stop 状态时被调用,一般在此保存 Activity 的状态信息

 6.protected void onDestroy(){ }方法: 在 Activity被结束时调用,一般用于释放缓存和清理内存用的6.protected void onDestroy(){ }方法:

 7.protected void onRestart(){ }方法: 重新启动了Activity时被调用



4. Activity 的操作:

  思路:mianActivity.java ,  ont.java

    activity_main.xml, activity_ont.xml

   在 activity_main.xml中放 TextView, EditText, Button,

    用代码了:

<?xml version="1.0" encoding="utf-8"?><LinearLayout    android:orientation="vertical"    xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:gravity="center_horizontal">    <TextView        android:gravity="center_vertical"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="第一个页面"/>    <EditText        android:id="@+id/id_et"        android:gravity="center_vertical"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:hint="请输入用户名"/>    <Button        android:id="@+id/id_btn"        android:gravity="center_vertical"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="点击跳转第二个页面"/></LinearLayout>

 





activity_ont.xml中放 TextView, EditText, Button


<?xml version="1.0" encoding="utf-8"?><LinearLayout    xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical">    <TextView        android:gravity="center_vertical"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="第二个页面传过来的值"/>    <EditText        android:id="@+id/id_et2"        android:gravity="center_vertical"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:hint="请输入用户名"/>    <Button        android:id="@+id/id_coles"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="关闭当前的页面"/></LinearLayout>






这是activity_main.xml,activity_ont.xml布局;

在mianActivity.java中

public class MainActivity extends AppCompatActivity {    private  String TAG = "--app--";    private Button button1;    private EditText et1;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        Log.e(TAG,"------onCreate----");        et1 = (EditText) findViewById(R.id.id_et);        button1 = (Button)findViewById(R.id.id_btn);        button1.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                Intent it=new Intent(MainActivity.this,ont.class);                Bundle data = new Bundle();                data.putString("uname",et1.getText().toString());                it.putExtras(data);               // startActivity(it); //单传数据                startActivityForResult(it,0);  //回传            }        });    }    //启动 inter 有返回值得时候    @Override    protected void onActivityResult(int requestCode, int resultCode, Intent data) {        String result = data.getStringExtra("oneName");        et1.setText(result);        super.onActivityResult(requestCode, resultCode, data);    }    @Override    protected void onStart() {        super.onStart();        Log.e(TAG,"------onStart()----");    }    @Override    protected void onResume() {        super.onResume();        Log.e(TAG,"------onResume()----");    }    @Override    protected void onPause() {        super.onPause();        Log.e(TAG,"------onPause()----");    }    @Override    protected void onStop() {        super.onStop();        Log.e(TAG,"------onStop()----");    }    @Override    protected void onDestroy() {        //在摧毁        super.onDestroy();        Log.e(TAG,"------onDestroy()----");    }    @Override    protected void onRestart() {        super.onRestart();        Log.e(TAG,"------onRestart()----");    }}









































ont.java中:

public class ont extends AppCompatActivity {    private Button btnClose ;    private EditText et2;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_ont);        Bundle data = getIntent().getExtras();        String uname = data.getString("uname");        et2 = (EditText) findViewById(R.id.id_et2);        et2.setText(uname);        btnClose = (Button) findViewById(R.id.id_coles);        btnClose.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                Intent    intent = new Intent();                intent.putExtra("oneName",et2.getText().toString());                setResult(0,intent);                finish(); //关闭            }        });    }}







运行结果:


查看日志:

初始时:


从第一页跳第二页,关闭第二页,日志:



以上是运行结果,

欢迎各位大神指点......









原创粉丝点击