Intent意图和Activity活动应用
原创: 灵思致远 4天前
1. 实验内容简介
Activity是用户和应用程序交互的接口,是一个控件的容器。在一个Activity中可以放置很多由View及其子类组成的可视化控件,例如按钮、图像、文本框等,这些控件根据XML布局文件中指定的位置在窗口中进行摆放。一个Activity通常展现为一个可视化的用户界面。一个应用程序可能由一个或多个Activity组成,Android平台通过Activity栈来对Activity进行管理。
Intent是Android中的重要组件,可以被认为是不同组件之间通信的桥梁。使用它可以使Activity、Service、BroadcastReceiver和ContentProvider这些核心组件之间可以互相调用,协调工作,最终组成一个真正的Android应用。
1)在发送端传值。
构建Intent: Intent intent = new Intent();
向Intent中添加要传递的参数:intent.putExtra("键名", "键值");
2)在接收端取值:
获取传递过来的Intent:Intentintent = getIntent();
取出Intent传递的参数:String value = intent.getExtra(“键”);
2. UI界面布局
第1个activity页面布局和大纲:
第2个activity页面布局和大纲:
3. 代码编写和调试
////MainActivity.java:
public class MainActivity extends Activity {
private Button mbutton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_first);
mbutton = (Button)findViewById(R.id.button1);
mbutton.setOnClickListener(newView.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.putExtra("key","这是第1个页面传递的信息");
intent.setClass(MainActivity.this,SecondActivity.class);
MainActivity.this.startActivity(intent);
}
});
}
@Override
protected void onPause() {
System.out.println("1--onpause()");
super.onPause();
}
@Override
protected void onRestart() {
System.out.println("1--onrestart()");
super.onRestart();
}
@Override
protected void onResume() {
System.out.println("1--onresume()");
super.onResume();
}
@Override
protected void onStart() {
System.out.println("1--onstart()");
super.onStart();
}
@Override
protected void onStop() {
System.out.println("1--onstop()");
super.onStop();
}
@Override
protected void onDestroy() {
System.out.println("1--ondestroy()");
super.onDestroy();
}
}
//// SecondActivity.java
public class SecondActivity extends Activity{
private TextView mytextview;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
Intent intent =getIntent();
String value=intent.getStringExtra("key");
mytextview =(TextView)findViewById(R.id.textView2);
mytextview.setText(value);
}
}