Java代码:更改变量的值
所以我有一个非常基本的问题。我的代码基本上是这样做的 用户选中一个单选按钮来选择一个时间(它们有1小时、2小时和3小时),然后单击Activity1中的一个按钮,然后将它们带到Activity2,其中有一个文本视图,以秒为单位显示时间滴答滴答 我希望那部分是清楚的 现在,Activity2中的TextView应该通过在Activity1的此行中传递时间来显示从Activity1传递的时间 intent.putExtra(“时间”,Time) 每当我尝试这段代码时,我得到的结果总是0,就好像它没有根据我在每个isChecked radioButton块中包含的if语句更改时间值一样。那么,帮帮忙?我知道一定有一个非常基本和简单的解决办法 多谢各位Java代码:更改变量的值,java,android,Java,Android,所以我有一个非常基本的问题。我的代码基本上是这样做的 用户选中一个单选按钮来选择一个时间(它们有1小时、2小时和3小时),然后单击Activity1中的一个按钮,然后将它们带到Activity2,其中有一个文本视图,以秒为单位显示时间滴答滴答 我希望那部分是清楚的 现在,Activity2中的TextView应该通过在Activity1的此行中传递时间来显示从Activity1传递的时间 intent.putExtra(“时间”,Time) 每当我尝试这段代码时,我得到的结果总是0,就好像它没有
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()中,我没有粘贴整个代码。