众所周知,Activity组件是Andorid应用中最重要,最常见的应用组件!Android应用开发的一个重要组成部分就是开发Activity,下面我将会记录下Activity的开发!
实例1图:
实例用第二个Activity处理注册信息
实例用第二个Activity让用户选择信息
结构图如下:
启动、关闭Activity
启动Activity有如下两个方法:
1:startActivity(Intent intent):
2:startActivityForResult(Intent intent , int resquestCode):
关闭Activity有如下两种方法
1:finish();
2:finishActivity(int requestCode):结束指定的Activity;
Activity的四种加载模式
- standard:会在Task中启动多次Activity实例
- singleTop:当需要启动的Activity实例位于Task栈顶时,再次启动将不回创建新的Activity实例
- singleTask:在同一个Task内,若Activity不存在,则创建!若需要启动的Activity位于栈顶,则Task内无变化!若不位于栈顶,则将位于该Activity上的所有Activity移出Task,将目标Activity位于栈顶!
- singleInstance:无论从哪个Task中启动目标Activity,只会创建一个目标Activity实例,并且会使用一个全新的栈来加载该Activity实例。
分两种情况:
1.如果将要启动的Activity不存在,系统会先创建一个全新的Task,再创建木匾Activity实例,并将它加入新的Task栈顶
2.如果将要启动的Activity存在,无论他在哪个应用中,系统都会把该Activit所在的Task转到前台,从而使Activity显示出来!
使用Bundle在Activity之间进行交互数据
当一个Activity的时候,通常需要携带一部分数据,而携带数据的信使就是intent,因此我们需要把需要传递的数据放在Intent中:
Intent提供多个重载方法,如下:
1:putExtra(Bundle data);向Intent中放入数据
2:Bundle getExtra():从Intent中取出数据
3:putExtra(String name,Xxx value);向Intent中按key_value键值对的形式存入数据
4:getXXXExtra(String name):指定的key,取出数据注意:Intent的putExtra()方法使智能的,当该Intent中如果存在Bundle对象,则直接将需要存入的数据存入到该Bundle中,如果没有,则会自动创建一个Bundle来存放数据
实例:用第二个Activity处理注册信息
Activity代码:
public class MainActivity extends Activity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button bn = (Button) findViewById(R.id.bn);
bn.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
EditText name = (EditText)findViewById(R.id.name);
EditText passwd = (EditText)findViewById(R.id.passwd);
RadioButton male = (RadioButton) findViewById(R.id.male);
String gender = male.isChecked() ? "男 " : "女";
Person p = new Person(name.getText().toString(), passwd
.getText().toString(), gender);
// 创建一个Bundle对象
Bundle data = new Bundle();
data.putSerializable("person", p);
// 创建一个Intent
Intent intent = new Intent(MainActivity.this,
ResultActivity.class);
intent.putExtras(data);
// 启动intent对应的Activity
startActivity(intent);
}
});
}
}
main.xml
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="请输入您的注册信息"
android:textSize="20sp"/>
<TableRow>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="用户名:"
android:textSize="16sp"/>
<!-- 定义一个EditText,用于收集用户的账号 -->
<EditText
android:id="@+id/name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请填写想注册的账号"
android:selectAllOnFocus="true"/>
</TableRow>
<TableRow>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="密码:"
android:textSize="16sp"/>