本节引言:
经过前面的学习,我们已经可以开发出一个自定义简单UI界面以及具有简单逻辑业务的App了,
不过都是在一个界面上完成的,而现在大部分的app都是拥有多个界面的,所以我们有必要继续深入地
学习,而这些所谓的界面,窗口,在Android我们把他们叫做Activity(活动),他也是Android四大组件的其中
一个,是基本的程序单元!在本节中我们要理解Activity是什么,它的生命周期,以及如何去新建,关闭一个Activity;
以及多个Activity之间的数据交互,当然还有Activity的加载模式!好了,就让读者跟随笔者的脚步一点点地解析
android的第一个组件:Activity吧!
正文:
传递一个数据:
传递多个数据:
代码示例:将第一个界面的注册信息传递给第二个界面
效果图:
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); } }
代码示例:在第二个界面选择图片后反馈回第一个界面:
效果图:
全部代码:代码下载
ps:如果要测试可以写下简单的代码,只要在AndroidManifest.xml为Activity配置属性:android:launchMode = "singleTop"这样就可以了.
通过getTaskId()获得Activity所在Task的id,就可以对比Activity所在的Task是否发生了改变!