【问题标题】:Passing values from a fragment to another activity将值从片段传递到另一个活动
【发布时间】:2019-01-26 19:22:09
【问题描述】:

我有一个 DialogFragment,它有一个 listView 作为容器。我已经在 listView 上设置了 OnItemClickListener。

当用户触摸一个项目并将其传递给另一个活动然后将该值存储到变量中时,我如何获取该值?我需要根据要选择的项目设置倒计时。实际上只能显示带有项目位置的简单 toast 消息。

请注意,值将被传递到的活动不是片段活动。

我正在考虑使用 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 分钟,依此类推...

请指导我,谢谢。

【问题讨论】:

  • 最好的办法是使用接口概念而不是捆绑包。 @天琴座
  • 谢谢。我在学习

标签: android android-fragments bundle android-fragmentactivity


【解决方案1】:

因此,您希望将数据从 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();
}

【讨论】:

  • 感谢您的快速回答。那么我必须在哪里调用 Bundle?
  • OnItemClickListener
  • 哦...我不明白你。我的意思是读取传递给 MainActivity 的值。如我的代码所示,我需要将该值存储到一个变量中,然后使用该变量来设置计时器
  • @Lyra,在onCreate() 中检查是否getIntent() != null 并打包。
  • 嗨@CoolMind,您的意思是通过“打包”来读取价值吗?抱歉这么无知和愚蠢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-31
  • 1970-01-01
相关资源
最近更新 更多