Android 安卓意向赢得';t从开关传递值

Android 安卓意向赢得';t从开关传递值,android,android-intent,switch-statement,Android,Android Intent,Switch Statement,我有一个开关按钮,我想从中传递不同的值(1或2)到下一个活动进行计算。但我总是得到0。有什么帮助吗 Switch mySwitch = (Switch) findViewById(R.id.edit_home); // set the switch to ON mySwitch.setChecked(true); // attach a listener to check for changes in state mySwitch.setOnCheck

我有一个开关按钮,我想从中传递不同的值(1或2)到下一个活动进行计算。但我总是得到0。有什么帮助吗

 Switch mySwitch = (Switch) findViewById(R.id.edit_home);

     // set the switch to ON
     mySwitch.setChecked(true);
     // attach a listener to check for changes in state
     mySwitch.setOnCheckedChangeListener(new Switch.OnCheckedChangeListener() {

     public void onCheckedChanged(CompoundButton buttonView,
     boolean isChecked) {

     if (isChecked) {

     double input5 = 2;  
     Intent intentx=new Intent(MainActivity.this,Main2Activity.class);
     intentx.putExtra("IFValue",input5);
             startActivity(intentx);
     Toast.makeText(getApplicationContext(), "Home field is important advantage",
     Toast.LENGTH_SHORT).show();

     } else {

     double input5 = 1;
     Intent intenty=new Intent(MainActivity.this,Main2Activity.class);
     intenty.putExtra("IFValue",input5);
             startActivity(intentx);
     Toast.makeText(getApplicationContext(),
     "Home field is not advantage", Toast.LENGTH_SHORT).show();
     }

     }
     });
在下一个活动中:

     Bundle bundle = getIntent().getExtras();
     double input5 = bundle.getDouble("IFValue");
编辑:我想将值(input5)发送到下一个活动,但如果我在开关内部添加startActivity(intentx);然后立即到达那里,而不是当我按下一步按钮(按钮向前)时

代码的其余部分:

    Switch mySwitch = (Switch) findViewById(R.id.edit_home);

     // set the switch to ON
     mySwitch.setChecked(true);
     // attach a listener to check for changes in state
     mySwitch.setOnCheckedChangeListener(new Switch.OnCheckedChangeListener() {

     public void onCheckedChanged(CompoundButton buttonView,
     boolean isChecked) {

     if (isChecked == true) {

     double input5 = 2;  
     Intent intentx=new Intent(MainActivity.this,Main2Activity.class);
     intentx.putExtra("IFValue",input5);
     startActivity(intentx);
     Toast.makeText(getApplicationContext(), "Home field is important advantage",
     Toast.LENGTH_SHORT).show();

     } else {

     double input5 = 1;
     Intent intenty=new Intent(MainActivity.this,Main2Activity.class);
     intenty.putExtra("IFValue",input5);
     startActivity(intenty);
     Toast.makeText(getApplicationContext(),
     "Home field is not advantage", Toast.LENGTH_SHORT).show();
     }

     }
     });



    Button buttonForward = (Button) findViewById(R.id.buttonToMain2);
    buttonForward.setOnClickListener(new OnClickListener(){


        @Override
        public void onClick(View arg0) {

    EditText edit_team = (EditText) findViewById(R.id.edit_team);
    EditText edit_form = (EditText) findViewById(R.id.edit_form);

    EditText edit_import = (EditText) findViewById(R.id.edit_import);

    String ekipa1 = edit_team.getText().toString();

    final double input2 = Double.valueOf(qualityControl.getProgress());
    final double input3 = Double.valueOf(edit_form.getText().toString());
        final double input4 = Double.valueOf(ratingBar.getRating()); 

    final double input6 = Double.valueOf(edit_import.getText().toString());

    Intent intent=new Intent(MainActivity.this,Main2Activity.class);
    intent.putExtra("Value",input2);
    intent.putExtra("Value1",input3);
    intent.putExtra("Value2",input4);

    intent.putExtra("Value4",input6);
    intent.putExtra("team1", ekipa1);
    startActivity(intent);








        }



    });     

您正在侦听器内创建
Intent
(intentx&intenty)的本地实例(我看不到您在侦听器内调用
startActivity()
)。传递的
extra
仅适用于本地副本,而不适用于您在侦听器外部使用的
startActivity()

更新1

使用
额外
键时,字符大小写很重要:

您正在使用
intentx.putExtra(“IFvalue”,input5)

在下一个活动中,您使用的是
double input5=bundle.getDouble(“IFValue”)这是一个不同的键

更新2

我想将值(input5)发送到下一个活动,但如果我添加 开关内部的启动触觉(intentx);然后马上去那里 当我按“下一步”按钮(按钮向前)时,就不会这样了

然后,您只需要在整个
活动中有一个
Intent
实例(在
onCreate()
之前定义它,然后不要从交换机侦听器启动
活动,而是为单个
Intent
实例添加
额外的

Intent intent = new Intent(MainActivity.this,Main2Activity.class); // Class level variable
然后在交换机侦听器中更改以下内容:

 // Intent intentx=new Intent(MainActivity.this,Main2Activity.class); remove this
 intent.putExtra("IFValue",input5);
//Intent intent=new Intent(MainActivity.this,Main2Activity.class); remove this
intent.putExtra("Value",input2);
intent.putExtra("Value1",input3);
intent.putExtra("Value2",input4);

intent.putExtra("Value4",input6);
intent.putExtra("team1", ekipa1);
startActivity(intent);
然后在按钮中向前单击侦听器:

 // Intent intentx=new Intent(MainActivity.this,Main2Activity.class); remove this
 intent.putExtra("IFValue",input5);
//Intent intent=new Intent(MainActivity.this,Main2Activity.class); remove this
intent.putExtra("Value",input2);
intent.putExtra("Value1",input3);
intent.putExtra("Value2",input4);

intent.putExtra("Value4",input6);
intent.putExtra("team1", ekipa1);
startActivity(intent);

检查您的isChecked值我认为它永远不会改变,请先从breakeposints开始检查,这是开始策略(意图);功能?你是如何开始下一个活动的?@BhanuSharma我如何修复它?那么这是你的问题吗?你的光标总是处于错误的状态,我认为@Mohamed_AbdAllah这是对的。看起来你在开关范围外调用startActivity。是的,我在开关范围外调用startActivity,所以我添加了:startActivity(intentx);在putExtra下吼叫,但它仍然提供0,而不是2?IFvalue不是IFvalue(常见错误):)纠正了所有错误,仍然不工作。正如巴努·夏尔马所评论的,这一定是isChecked值的问题。我该如何解决这个问题?如果问题在isChecked中,则在其他活动中会得到1