我的目标是在MyCountDownTimer用完之后通过intent传递值。这是我到目前为止的代码。我该放置putExtra吗?
@Override
public void onFinish() {
Intent retryIntent = new Intent(textCounter.getContext(), Retry.class);
textCounter.getContext().startActivity(retryIntent);
}
这里是我的活动中使用该方法的地方
if (textCounter==null){
myCountDownTimer.onFinish();
}
新编辑:
@Override
public void onClick(View v) {
if (v.getId()== R.id.retry){
Bundle extras1 = getIntent().getExtras();
whichTest = extras1.getInt("whichTest"); //NUllpointerException
if (whichTest == 1){
Intent intent1 = new Intent(Retry.this, Test1.class);
startActivity(intent1);
}
if (whichTest == 2){
Intent intent1 = new Intent(Retry.this, Test2.class);
startActivity(intent1);}
...
@Override
public void onFinish() {
Intent retryIntent = new Intent(textCounter.getContext(), Retry.class);
if (textCounter.getContext().equals(Test1.class)){
whichTest = 1;
retryIntent.putExtra("whichTest",whichTest);
}
if (textCounter.getContext().equals(Test2.class)){
whichTest = 2;
retryIntent.putExtra("whichTest",whichTest);
}
textCounter.getContext().startActivity(retryIntent);
答案 0 :(得分:1)
您可以使用Intent.putExtra(string key, value)
实施例
retryIntent.putExtra("MY_COUNTDOWN_TIMER_NAME", "George");
您可以通过
在新活动中检索它们string george = getIntent().getExtras().getString("MY_COUNTDOWN_TIMER_NAME");
检查documentation以获取有关哪些对象可能是额外内容的更多信息。
编辑:
意图的流动。
活动1创建一个意图,它将额外内容放入所述意图中,并启动活动2.
活动2获取使用getIntent()
启动它的意图。然后使用getExtras()
检索与intent一起传递的所有额外数据。最后,它通过密钥获取额外值。
如果尝试使用getIntent().getExtras()
来自未启动的活动,就像活动2一样,您将获得空指针异常。
如果您不确定活动2是否启用了附加功能,您可以随时检查getIntent().getExtras()
是否返回null
答案 1 :(得分:0)
您可以在已经在onFinish()方法中编写的两行之间放置该行:
Intent retryIntent = new Intent(textCounter.getContext(), Retry.class);
retryIntent.putExtra(name, value);
textCounter.getContext().startActivity(retryIntent);