在我们写Android程序应用的时候经常需要将一个Activity跳转到另外一个Activity,这就需要使用到Android里面的intent类,它可以帮我们实现这样的一个功能,下面我们就用一个简单的登录示例来完成这样的一个功能。
首选我们建立一个初始的Activity,里面有两个EditView,分别表示登录的用户名和密码,在加上一个Button用来触发登录事件。代码如下
public class Activity01 extends Activity {
/** Called when the activity is first created. */
private EditText userText;
private EditText pwdText;
public EditText getUserText() {
return userText;
}
public void setUserText(EditText userText) {
this.userText = userText;
}
public EditText getPwdText() {
return pwdText;
}
public void setPwdText(EditText pwdText) {
this.pwdText = pwdText;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
userText = (EditText)findViewById(R.id.user);
pwdText = (EditText)findViewById(R.id.pwd);
Button button = (Button)findViewById(R.id.myButton);
button.setOnClickListener(new LoginListener(this));
}
}
Activity01.页面代码如下在main.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"> <EditText android:id="@+id/user" android:layout_width="fill_parent" android:layout_height="wrap_content"> </EditText> <EditText android:id="@+id/pwd" android:layout_width="fill_parent" android:layout_height="wrap_content"> </EditText> <Button android:text="确定" android:id="@+id/myButton" android:layout_width="fill_parent" android:layout_height="wrap_content"> </Button> </LinearLayout>
触发的事件LoginListener(this)代表当前所在类的事件,用来处理登录。代码如下
public class LoginListener implements OnClickListener {
private Activity01 activity01;
public LoginListener(Activity01 activity01){
this.activity01 = activity01;
}
@Override
public void onClick(View v) {
String user = activity01.getUserText().getText().toString();
String pwd = activity01.getPwdText().getText().toString();
System.out.println("user :"+user+",pwd= "+pwd);
if(user.equals("admin")&&pwd.equals("admin")){
Intent intent = new Intent();
intent.setClass(activity01, Activity02.class);
//将用户名和密码传递到下一个Activity
intent.putExtra("user", user);
intent.putExtra("pwd", pwd);
activity01.startActivity(intent);
}else{
}
}
}
这里面的Intent是重点,其中setClass里面两个参数表示的是原Activity对象到目标activity,我这里定义了另外一个Activity02.class,最后调用startActivity()就行了。
Activity02的代码如下:
public class Activity02 extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity02);
Intent itent = getIntent();
String user = itent.getStringExtra("user");
String pwd = itent.getStringExtra("pwd");
TextView userView = (TextView)findViewById(R.id.userTextView);
userView.setText(user);
TextView pwdView = (TextView)findViewById(R.id.pwdTextView);
pwdView.setText(pwd);
}
这段代码也是很简单,首选得到Intent,然后取得user和password的值,然后显示。
我们需要重新定义一个布局的xml文件,在layout目录下面新建一个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/userTextView" android:layout_width="fill_parent" android:layout_height="wrap_content"> </TextView> <TextView android:id="@+id/pwdTextView" android:layout_width="fill_parent" android:layout_height="wrap_content"> </TextView> </LinearLayout>
最后我们需要在values/strings.xml下定义这两个Activity,具体代码如下:
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">Activity01</string> <string name="activity02">Activity02</string> </resources>
完成这一步以后,我们在AndroidManifest.xml里面注册我们新建的Activity02,代码如下:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="oplk.activity01" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".Activity01" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".Activity02" android:label="@string/activity02"> </activity> </application> </manifest>
这样我们就完成了整个登录跳转的基本功能,看是不是很简单呀......,O(∩_∩)O哈哈~希望对大家有所帮助