Android 显式跳转和隐式跳转:使用 Intent 实现 Activity 间数据传递和验证
Android 显式跳转和隐式跳转:使用 Intent 实现 Activity 间数据传递和验证
1. Intent 的显式跳转与隐式跳转:
- 显式跳转:当我们明确指定要启动的目标组件时,使用显式跳转。我们指定目标组件的名称或类,以便系统可以准确地识别要启动的组件。
- 隐式跳转:当我们希望根据某些条件或操作来选择要启动的组件时,使用隐式跳转。我们定义一组过滤条件(如操作、数据、类别等),然后系统会根据这些条件来选择合适的组件进行启动。
2. Activity 间数据传递与验证示例代码
本示例代码演示了如何使用 Intent 在两个 Activity 之间传递数据,并在 Activity2 中验证数据。
Activity1.java
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import androidx.appcompat.app.AppCompatActivity;
public class Activity1 extends AppCompatActivity {
private EditText usernameEditText, passwordEditText;
private Button nextButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_1);
usernameEditText = findViewById(R.id.usernameEditText);
passwordEditText = findViewById(R.id.passwordEditText);
nextButton = findViewById(R.id.nextButton);
nextButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String username = usernameEditText.getText().toString();
String password = passwordEditText.getText().toString();
Intent intent = new Intent(Activity1.this, Activity2.class);
intent.putExtra('username', username);
intent.putExtra('password', password);
startActivity(intent);
}
});
}
}
Activity2.java
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import androidx.appcompat.app.AppCompatActivity;
public class Activity2 extends AppCompatActivity {
private EditText verificationCodeEditText;
private Button loginButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_2);
verificationCodeEditText = findViewById(R.id.verificationCodeEditText);
loginButton = findViewById(R.id.loginButton);
loginButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String username = getIntent().getStringExtra('username');
String password = getIntent().getStringExtra('password');
String verificationCode = verificationCodeEditText.getText().toString();
if (username.equals('admin') && password.equals('123') && verificationCode.equals('8849')) {
showMessage('身份信息验证成功');
} else {
String message = '您刚才输入的信息:\n' +
'username: ' + username + '\n' +
'password: ' + password + '\n' +
'Verification Code: ' + verificationCode + '\n' +
'验证失败,请重新输入身份信息';
Intent intent = new Intent(Activity2.this, Activity1.class);
intent.putExtra('message', message);
startActivity(intent);
}
}
});
}
private void showMessage(String message) {
// 使用Toast或其他消息框来显示消息
}
}
说明:
- 在 Activity1 中,我们获取了输入的用户名和密码,并使用
Intent将这些数据传递给 Activity2,然后启动 Activity2。 - 在 Activity2 中,我们获取了 Activity1 传递的用户名、密码和验证码,并进行验证。如果验证成功,我们显示一个成功的消息框。否则,我们构建一个包含输入信息的消息,并将其传递回 Activity1,然后启动 Activity1 以返回。
请注意:
- 您需要根据实际情况添加适当的布局文件和资源,并确保将 Activity1 和 Activity2 添加到 Manifest 文件中。
- 为了更好的用户体验,建议使用
Toast或其他消息框来显示验证结果。
本示例代码展示了 Intent 在 Activity 之间传递数据和实现验证的基本方法。您可以根据实际需求进行扩展和修改。如果您有任何疑问,请随时提问。
原文地址: https://www.cveoy.top/t/topic/bsvO 著作权归作者所有。请勿转载和采集!