我还是Android开发的新手。我已经解决了这个问题已经有一段时间了,但仍然无法弄清楚自己要做什么。在一个Activity中,我设置了一系列包含CountDownTimers的Runnables。一个在下一个之后执行,但是根据哪个CountDownTimer是活动的,我需要将不同的Intent.extra传递给一个片段。我已尝试从Runnable内部,Run内部以及CountDownTimer onTick和onFinish内部设置我的额外内容。
我担心我的原始活动中有太多的东西要发布它,但问题本质上就是问题。
public class MatchUpActivity extends Activity implements OpponentFragment.OnFragmentInteractionListener{
List mTotalDrafts;
Bundle mBundle;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_match_up);
mBundle = new Bundle();
mDraftUsernames = extras.getStringArrayList("DRAFT_LIST");
for (int i = 0; i < totalDrafts; i++) {
Handler delayhandler = new Handler();
delayhandler.postDelayed(new Runnable() {
//bundle.put("extra", totalDrafts.get(0))
public void run() {
//bundle.put("extra", totalDrafts.get(0))
getTimer();
}
}, mTodaysDraftTime + (i * singleDraftDuration) - Calendar.getInstance().getTimeInMillis());
}
}
CountDownTimer
private void getTimer() {
new CountDownTimer(singleDraftDuration, 1000) {
public void onTick(long millisUntilFinished) {
//bundle.put("extra", totalDrafts.get(0))
}
public void onFinish() {
//bundle.put("extra", totalDrafts.get(0))
list.remove(0)
}
}.start();
}
}
我能够从onFinish中的列表中删除项目,但在我这样做之后,我需要将列表中的下一个元素作为额外元素发送。
我希望这是足够的代码来解决我的问题。为了简单起见,我试图从原始代码中更改一些内容。如果有我遗失的东西或更好的方法,请任何人让我知道。
答案 0 :(得分:0)
在您的Activity中将Bundle定义为全局变量,而不是在Method实现中。