Java代码:更改变量的值

Java代码:更改变量的值,java,android,Java,Android,所以我有一个非常基本的问题。我的代码基本上是这样做的 用户选中一个单选按钮来选择一个时间(它们有1小时、2小时和3小时),然后单击Activity1中的一个按钮,然后将它们带到Activity2,其中有一个文本视图,以秒为单位显示时间滴答滴答 我希望那部分是清楚的 现在,Activity2中的TextView应该通过在Activity1的此行中传递时间来显示从Activity1传递的时间 intent.putExtra(“时间”,Time) 每当我尝试这段代码时,我得到的结果总是0,就好像它没有

所以我有一个非常基本的问题。我的代码基本上是这样做的

用户选中一个单选按钮来选择一个时间(它们有1小时、2小时和3小时),然后单击Activity1中的一个按钮,然后将它们带到Activity2,其中有一个文本视图,以秒为单位显示时间滴答滴答

我希望那部分是清楚的

现在,Activity2中的TextView应该通过在Activity1的此行中传递时间来显示从Activity1传递的时间

intent.putExtra(“时间”,Time)

每当我尝试这段代码时,我得到的结果总是0,就好像它没有根据我在每个isChecked radioButton块中包含的if语句更改时间值一样。那么,帮帮忙?我知道一定有一个非常基本和简单的解决办法

多谢各位

protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.release_bicycle);
        one = (RadioButton)findViewById(R.id.oneHour);
        two = (RadioButton)findViewById(R.id.twoHours);
        three = (RadioButton)findViewById(R.id.threeHours);
        Go = (Button)findViewById(R.id.releaseBTN);


        Go.setOnClickListener(new View.OnClickListener() 
    {           
        @Override
public void onClick(View v) 
{

    //start bluetooth

        if (one.isChecked()) 
        {
            new CountDownTimer(3600000, 1000) 
            {
                public void onTick(long millisUntilFinished) 
                {   
                     time = (millisUntilFinished/1000);
                }

                public void onFinish()
                {
                    ... database
                }
            }.start();

        }


        if (two.isChecked()) 
        {
                  ...
        }


        if (three.isChecked()) 
        {           
            ...

        }


        Intent intent = new Intent(current.this, destination.class);
        intent.putExtra ( "Time",  time);
        startActivity(intent);      
    }

    });


}

您的
onCreate()
结束后,将调用您的
public void onTick(long millisuntiltfinished)

例如,您应该在onStart中放置以下代码

Intent intent = new Intent(current.this, destination.class);
intent.putExtra ( "Time",  time);
startActivity(intent); 
这是一种奇怪的方法,创建一个只在开始时甚至创建时启动另一个活动的活动


您可以做的另一个选择是使用处理程序在延迟后执行代码。

我在这一行取
time
的值:
intent.putExtra(“time”,time)为0?@AleksanderLidtke是的为什么不在Activity2中启动倒计时?@njzk2,因为我的应用程序就是这样设计的。难道没有办法根据if语句更改我的时间值吗?@Issy正如njzk2所说,
onTick
计划执行。这与
onCreate
无关。我认为最好的解决办法是改变你对这一点的心态,也许在
destination
活动中启动
CountDownTimer
。如果您真的需要让它按原样工作,并且只需要
time
的第一个值,只需调用
time=(3600000/1000)
在'new CountDownTimer()'之前的if语句中,但这将是一个肮脏的解决方案。该代码在我的onCeate()中,我没有粘贴整个代码。