Android Studio中通过Intent传递整数:无法同时启动Activity并传值
解决Activity间传递整数并跳转的问题
别担心,我来帮你搞定这个问题!要同时完成跳转Activity和传递整数,只需要在按钮的点击事件里把Intent的创建、传值和启动这几步结合起来就行。
第一步:给按钮绑定点击事件
先在onCreate方法里找到你的按钮,给它添加点击监听器,把跳转和传值的逻辑写在监听器内部。
第二步:创建Intent并传递整数
在点击事件里,先创建指向第二个Activity的Intent,用putExtra()方法把整数打包进去,最后调用startActivity()完成跳转。
下面是修改后的第一个Activity代码示例:
public class ana_ekran extends AppCompatActivity { public TextView ana_ekran_kule; public TextView ana_ekran_can; public int ana_ekran_can_int = 30; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_ana_ekran); // 补全你的布局文件名 // 找到按钮(替换成你自己的按钮id) Button goToSecondBtn = findViewById(R.id.btn_jump_to_second); goToSecondBtn.setOnClickListener(v -> { // 1. 创建跳转Intent,指定目标Activity(替换成你的第二个Activity类名) Intent intent = new Intent(ana_ekran.this, TargetActivity.class); // 2. 传递整数,第一个参数是"键"(接收时要用到),第二个是要传的整数 intent.putExtra("EXTRA_LIFE_VALUE", ana_ekran_can_int); // 3. 启动第二个Activity startActivity(intent); }); } }
第三步:在第二个Activity中接收整数
别忘了在目标Activity里取出传递过来的整数,示例代码如下:
public class TargetActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_target); // 获取传递的整数,第二个参数是默认值(没拿到数据时用这个) int receivedLife = getIntent().getIntExtra("EXTRA_LIFE_VALUE", 0); // 可以把整数显示到TextView里,或者做其他操作 TextView lifeTv = findViewById(R.id.tv_show_life); lifeTv.setText("收到的生命值:" + receivedLife); } }
关键注意点
- 确保第二个Activity已经在
AndroidManifest.xml中注册,否则会跳转失败; - 传递数据的"键"(比如示例里的
EXTRA_LIFE_VALUE)要和接收时的键完全一致,不然拿不到数据。
这样点击按钮时,就能同时完成跳转和整数传递啦!
内容的提问来源于stack exchange,提问作者Alper Göktepe
相关产品推荐
相关产品推荐

