android - 将值从片段传递到另一个活动
问题描述
我有一个 DialogFragment,它有一个 listView 作为容器。我已经在 listView 上设置了 OnItemClickListener。
当用户触摸一个项目并将其传递给另一个活动然后将该值存储到变量中时,如何获取该值?我需要根据要选择的项目设置倒计时。实际上只能显示带有项目位置的简单吐司消息。
请注意,将传递值的活动不是片段活动。
我正在考虑使用 Bundle,但即使在阅读了 Google 网站上的文档之后,对编程了解不多也是一种痛苦。
在 MainActivy 上,这是我设置计时器的方式:
new CountDownTimer(30000, 1000) {
public void onTick(long millisUntilFinished) {
String elapsedTime = String.valueOf(millisUntilFinished / 1000);
timer.setText(elapsedTime);
}
public void onFinish() {
timer.setText(R.string.text);
}
}.start();
}
示例:
如果用户触摸第 1 项,则计时器的值为 15 分钟,依此类推...
请指导我,谢谢。
解决方案
因此,您希望将数据从 Fragment 传递到 Activity。这是你如何做到的。
将数据从 Fragment 传递到 Activity:
final Intent intent = new Intent(getActivity(), ActivityName.class);
intent.putExtra("counter-value", counterValue);
getActivity().startActivity(intent);
读取Activity中的值:
final Bundle extras = getIntent().getExtras();
if(extras != null) {
final int counterValue = extras.getInt("counter-value", -1);
showCountDown(counterValue);
}
现在,将值传递给countdowntimer
.
private void showCountDown(final int counterValue) {
new CountDownTimer(counterValue, 1000) {
public void onTick(long millisUntilFinished) {
String elapsedTime = String.valueOf(millisUntilFinished / 1000);
timer.setText(elapsedTime);
}
public void onFinish() {
timer.setText(R.string.text);
}
}.start();
}
推荐阅读
- heroku - 如何在heroku上使用dlib预测器部署django rest API?
- parsing - 备注:如何在 MDAST 中解析 HTML 标签及其内容
- python - 具有多个输出 Python 的拟合函数
- typescript - Typescript - 'string' 类型的表达式不能用于索引类型
- c# - 如何在视图中显示月份名称而不是月份编号?
- android-fragments - 无法从 LiveData 获取数据
- angular - 将其他用户列添加到周视图日历
- java - 有没有办法删除链接列表节点,以使这段代码中的头部成为唯一剩下的东西?
- javascript - 将 jQuery ajax 转换为 fetch
- typescript - 高级 TS 类型:镜像键但成为新值的包装器类型