Android Studio中extras.putString()无法使用问题求助
解决Android中通过Intent在Activity间传递参数并显示到TextView的问题
嘿,我看你已经在PAActivity里拿到了各个EditText的实例,接下来咱们一步步把输入的数据传递到目标Activity,再显示到TextView里~
第一步:完善PAActivity的提交逻辑,传递数据
首先把你没写完的代码补全,先获取EditText里的输入内容,然后给提交按钮设置点击事件,通过Intent把数据带过去:
// PAActivity.java EditText Fname = (EditText) findViewById(R.id.editFirst); EditText Lname = (EditText) findViewById(R.id.editLast); EditText email = (EditText) findViewById(R.id.editEmail); EditText phone = (EditText) findViewById(R.id.editPhone); Button submit = (Button) findViewById(R.id.submit); submit.setOnClickListener(v -> { // 获取输入框内容,记得trim()去掉首尾空格 String Fnameholder = Fname.getText().toString().trim(); String Lnameholder = Lname.getText().toString().trim(); String emailHolder = email.getText().toString().trim(); String phoneHolder = phone.getText().toString().trim(); // 创建Intent,指定跳转到目标Activity(这里假设目标Activity叫ResultActivity) Intent intent = new Intent(PAActivity.this, ResultActivity.class); // 把数据存入extras,自定义KEY方便后续获取 intent.putExtra("KEY_FIRST_NAME", Fnameholder); intent.putExtra("KEY_LAST_NAME", Lnameholder); intent.putExtra("KEY_EMAIL", emailHolder); intent.putExtra("KEY_PHONE", phoneHolder); // 启动目标Activity startActivity(intent); });
第二步:在目标Activity中接收数据并显示到TextView
接下来在你的目标Activity(比如ResultActivity)里,接收传递过来的参数,然后设置到对应的TextView上:
// ResultActivity.java @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_result); // 对应你的目标页面布局 // 找到布局里的TextView TextView tvFirstName = findViewById(R.id.tv_first_name); TextView tvLastName = findViewById(R.id.tv_last_name); TextView tvEmail = findViewById(R.id.tv_email); TextView tvPhone = findViewById(R.id.tv_phone); // 获取传递过来的Intent和extras Intent intent = getIntent(); if (intent != null && intent.getExtras() != null) { String firstName = intent.getStringExtra("KEY_FIRST_NAME"); String lastName = intent.getStringExtra("KEY_LAST_NAME"); String email = intent.getStringExtra("KEY_EMAIL"); String phone = intent.getStringExtra("KEY_PHONE"); // 设置文本到TextView tvFirstName.setText(firstName); tvLastName.setText(lastName); tvEmail.setText(email); tvPhone.setText(phone); } }
几个要注意的小细节
- 别忘在
AndroidManifest.xml里注册你的目标Activity,不然会崩溃哦:<activity android:name=".ResultActivity" /> - 可以给EditText加非空判断,比如如果用户没输入名字,弹出提示避免传空字符串过去
- 如果想避免KEY拼写错误,可以把KEY定义成全局静态常量,比如在PAActivity里写
public static final String KEY_FIRST_NAME = "KEY_FIRST_NAME";,两边直接调用即可
内容的提问来源于stack exchange,提问作者Dhirish
相关产品推荐
相关产品推荐

