Android_Activity

本节引言:

经过前面的学习,我们已经可以开发出一个自定义简单UI界面以及具有简单逻辑业务的App了,

不过都是在一个界面上完成的,而现在大部分的app都是拥有多个界面的,所以我们有必要继续深入地

学习,而这些所谓的界面,窗口,在Android我们把他们叫做Activity(活动),他也是Android四大组件的其中

一个,是基本的程序单元!在本节中我们要理解Activity是什么,它的生命周期,以及如何去新建,关闭一个Activity;

以及多个Activity之间的数据交互,当然还有Activity的加载模式!好了,就让读者跟随笔者的脚步一点点地解析

android的第一个组件:Activity吧!奋斗


本节学习路线图:

Android_Activity_第1张图片



正文:


Activity的概念与Activity的生命周期图:

Android_Activity_第2张图片


Activity的使用流程:

Android_Activity_第3张图片


多个Activity间的数据交互

①传递数据到新启动的Activity

传递一个数据:


Android_Activity_第4张图片


传递多个数据:


Android_Activity_第5张图片


代码示例:将第一个界面的注册信息传递给第二个界面

效果图:

Android_Activity_第6张图片

ps:核心代码在图中已经有了,这里就不贴详细代码了,要看代码的自己下来看下把:代码下载


个人看博客后的代码练习:

布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <EditText
        android:id="@+id/et_username"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="請輸入賬號"
        android:inputType="text" >
    </EditText>

    <EditText
        android:id="@+id/et_passward"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="請輸入密碼"
        android:inputType="textPassword" />

    <Button
        android:id="@+id/bt_regise"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="注册" />

</LinearLayout>


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/tv_show"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

</LinearLayout>
java代码:

package com.example.activitydeliver;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends Activity {

	private EditText et_username;
	private EditText et_passward;
	private Button bt_regise;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		
		setContentView(R.layout.activity_main);
		et_username=(EditText) findViewById(R.id.et_username);
		et_passward=(EditText) findViewById(R.id.et_passward);
		bt_regise=(Button) findViewById(R.id.bt_regise);
		
		bt_regise.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View arg0) {
				String username = et_username.getText().toString().trim();
				String passward = et_passward.getText().toString().trim();
				
				Intent intent = new Intent(MainActivity.this,OtherActivity.class);
				Bundle bundle = new Bundle();
				bundle.putString("username", username);
				bundle.putString("passward", passward);
				intent.putExtras(bundle);
				startActivity(intent);
				
			}
		});
	}
	
	

}


package com.example.activitydeliver;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;

public class OtherActivity extends Activity {

	private TextView tv_show;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		
		setContentView(R.layout.activity_other_activity);
		tv_show=(TextView) findViewById(R.id.tv_show);
		
		Intent intent =getIntent();
		Bundle bundle = intent.getExtras();
		String username = bundle.getString("username");
		String passward = bundle.getString("passward");
		
		tv_show.setText("用户名"+username+"密码"+passward);
		
	}
}


②多个Activity之间的交互

Android_Activity_第7张图片


代码示例:在第二个界面选择图片后反馈回第一个界面:

效果图:

Android_Activity_第8张图片

全部代码:代码下载


Activity的四种加载模式:

Android_Activity_第9张图片


ps:如果要测试可以写下简单的代码,只要在AndroidManifest.xml为Activity配置属性:android:launchMode = "singleTop"这样就可以了.

通过getTaskId()获得Activity所在Task的id,就可以对比Activity所在的Task是否发生了改变!

你可能感兴趣的:(Android_Activity)