Android 如何使用其他活动的切换按钮从现有活动转移控制流
我已经制作了一个名为Activity1.xml、Activity2.xml、Activity3.xml、Activity4.xml的应用程序。在Activity1中,我放置了一个带有“是”和“否”的“切换按钮”,现在我的第一个活动也有“下一步”按钮,当按下“Activity2.xml”时,它也会打开,它也有“下一步”按钮,现在的重点是当按下“活动2”将检查“活动1”的“切换按钮”,如果是“是”,则应转到“活动3”,否则为“活动4”…我已按以下方式尝试,但不起作用,请帮助我,实际上我不知道如何操作请: 活动1.javaAndroid 如何使用其他活动的切换按钮从现有活动转移控制流,android,android-intent,toggle,togglebutton,Android,Android Intent,Toggle,Togglebutton,我已经制作了一个名为Activity1.xml、Activity2.xml、Activity3.xml、Activity4.xml的应用程序。在Activity1中,我放置了一个带有“是”和“否”的“切换按钮”,现在我的第一个活动也有“下一步”按钮,当按下“Activity2.xml”时,它也会打开,它也有“下一步”按钮,现在的重点是当按下“活动2”将检查“活动1”的“切换按钮”,如果是“是”,则应转到“活动3”,否则为“活动4”…我已按以下方式尝试,但不起作用,请帮助我,实际上我不知道如何操作
btn2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(Calculator_1Activity.this, Calculator2.class);
intent.putExtra("toggleBtn", tg.isChecked());
startActivity(intent);
}
});
btn2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(val==true){
Intent iq=new Intent(Calculator2.this,Deposit.class);
startActivity(iq);
}
else{
Intent ir= new Intent(Calculator2.this,Calculator_3Activity.class);
startActivity(ir);
}
}
});
在activity2.java中
btn2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(Calculator_1Activity.this, Calculator2.class);
intent.putExtra("toggleBtn", tg.isChecked());
startActivity(intent);
}
});
btn2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(val==true){
Intent iq=new Intent(Calculator2.this,Deposit.class);
startActivity(iq);
}
else{
Intent ir= new Intent(Calculator2.this,Calculator_3Activity.class);
startActivity(ir);
}
}
});
仍然不起作用
我放了一些图片以便更好地理解
Activity1.xml
活动2
活动3
活动4
您需要使用一个布尔字段来检查在“下一步”按钮上是否单击了ToggleButton,单击其他活动(如Activity1、Activity2等) 使用
Intent.putExtra
将切换按钮的状态发送到其他活动,如下所示:
public static boolean status=false;
tg.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
Intent ia = new Intent(Calculator_1Activity.this,Calculator2.class);
status=true;
ia.putExtra("tg_status", status); //<< send button status here
startActivity(ia);
} else {
// The toggle is disabled
Intent ib = new Intent(Calculator_1Activity.this,Calculator2.class);
status=false;
ia.putExtra("tg_status", status); //<< send button status here
startActivity(ib);
}
}
});
public静态布尔状态=false;
setOnCheckedChangeListener(新的CompoundButton.OnCheckedChangeListener(){
检查更改后的公共无效(复合按钮视图,布尔值已检查){
如果(已检查){
Intent ia=新的Intent(Calculator_1活动。this,Calculator2.class);
状态=真;
ia.putExtra(“tg_status”,status);//当从活动1打开活动2时,将切换按钮的值作为布尔值(选中或不选中)一起发送到intent extra…中,只需在活动2中根据从活动1收到的值执行操作过程
Intent intent = new Intent(this, NextActivity.class);
intent.putExtras("toggleBtn", toggleButton.isChecked());
在activity2/NextActivity中,通过获取oncreate中切换btn的值
boolean val= getIntent().getExtras().getBoolean("toggleBtn");
基于val,在下一个btn点击监听器中启动activity3或activity4,你能告诉我如何在activity2@其“next”按钮中使用它吗?谢谢你在下一个按钮上尝试过它点击if(Calculator_1Activity.status){}else{}
在activity2中我已经尝试过你的代码,但它只在“if”上工作,不在“else”中“:if(Calculator_1Activity.status=true){Intent ix=new Intent(Calculator2.this,Deposit.class);startActivity(ix);}else{Intent iy=new Intent(Calculator2.this,Calculator_3Activity.class);startActivity(iy);}@jimmycool:use if(计算器1活动状态==真)相反,Calculator_1Activity.status=True我已编辑了我的问题,并添加了代码,但项目不起作用…请在activity1中帮助启动activity2发送切换BTN状态通过上述意图/额外,并在activity2下一步按钮中单击侦听器使用该值。将值发送到activity1代码后,无需在activity1中使用checklistenervity2并将其存储为布尔值在活动2的下一个btn侦听器中使用该布尔值。发布活动2的代码下一个btn单击侦听器我已经按照您的建议编辑了我的代码,但它不工作,请检查它。发生了什么事?你说不工作是什么意思,它总是打开Deposit.class还是Calculator\u 1Activity.class..or您是否收到错误:)…您是否可以发布如何在Activity2中填充布尔“val”的代码您是否可以发布如何在Activity2中填充布尔“val”的代码..发布oncreate of Activity2的代码