在Android中Intent类,可以使两个ACtivity之间产生联系,通过了解Intent的基本作用也会了解到多个ACtivity之间的关系。
Intent的用处:
- 在一个Activity当中启动另外一个ACtivity
- 使用Intent在Activity之间传输数据
第一个基础实例程序很简单,第一个Activity有一个按钮,点击后跳转到第二个Activity,并显示文字。如图:
这是第一个ACtivity:
点击按钮后跳转到第二个Activity:
完整代码:
xml文件:
View Code
//第一个Activity的java文件
package geeker.helloworld;
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.TextView;
public class HelloActivity extends Activity {
private Button myButton = null;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
myButton = (Button)findViewById(R.id.myButton);
myButton.setText("我的第一个Button");
myButton.setOnClickListener(new MyButtonListener());
}
//内部类
class MyButtonListener implements OnClickListener{
@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.setClass(HelloActivity.this, OtherActivity.class);
HelloActivity.this.startActivity(intent);
}
}
}
//第二个java文件
package geeker.helloworld;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class OtherActivity extends Activity {
private TextView myTextView = null;
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.other);
myTextView = (TextView)findViewById(R.id.myTextView);
myTextView.setText(R.string.other);
}
}
View Code
//第一个Activity对应的XML文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<Button
android:id = "@+id/myButton"
android:layout_width = "fill_parent"
android:layout_height = "wrap_content"
/>
</LinearLayout>
//第二个Activity对应的XML文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:id = "@+id/myTextView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
先在第一个XML文件中加一个按钮控件
1 <Button
2 android:id = "@+id/myButton"
3 android:layout_width = "fill_parent"
4 android:layout_height = "wrap_content"
5 />
再在第二个XML文件中添加一个文本显示控件
1 <TextView
2 android:id = "@+id/myTextView"
3 android:layout_width="fill_parent"
4 android:layout_height="wrap_content"
5 />
分别与.java文件产生关联,使得一个Activity对应相应的xml布局文件
该语句通常放到onCreate()函数中,因为每个Activity都必须重写onCreate方法,每个Activity自动生成的时候都会自动调用Oncreate方法,就像构造函数一样。
1 protected void onCreate(Bundle savedInstanceState) {
2 // TODO Auto-generated method stub
3 super.onCreate(savedInstanceState);
4 setContentView(R.layout.other);
5 。
6 。
对控件进行设定:
1 myButton.setText("我的第一个Button");
2 myButton.setOnClickListener(new MyButtonListener());
3
4 myTextView = (TextView)findViewById(R.id.myTextView);
5 myTextView.setText(R.string.other);
给按钮添加监听器,并且通过Intent对象使得与第二个Activity发生联系
//内部类,按钮点击的监听器类
class MyButtonListener implements OnClickListener{
@Override
public void onClick(View v) {
//新建一个Intent类对象
Intent intent = new Intent();
//第一个参数是此Activity,第二个是与之联系的Activity//setClass就是说从哪个Activity跳转到哪个Activity
intent.setClass(HelloActivity.this, OtherActivity.class);
//建立好关系之后启动Activity
HelloActivity.this.startActivity(intent);
}
}
//最后比忘了在Oncreate函数中给BUtton添加这个监听器类对象
myButton.setOnClickListener(new MyButtonListener());
最后还有个容易忘记的地方就是要在Androidjmanifast.xml文件中给第二个Activity进行注册
<activity android:name=".OtherActivity" android:label="@string/otherName" />
搞定 !
第二个示例主要体现出Intent在Activity中间数据传送的作用:
程序内容依然很简单: