【问题标题】:Passing a Text String to another activity Android studio [duplicate]将文本字符串传递给另一个活动Android工作室[重复]
【发布时间】:2015-05-05 22:17:57
【问题描述】:
public class Milk extends Activity {

private CountDownTimer countDownTimer;
private final long startTime = 1000 * 60 * 60 * 24 * 7;
private final long interval = 1 * 1000;
public TextView textView;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.timer);


    textView = (TextView) this.findViewById(R.id.milkTimer);
    countDownTimer = new CountDownTimerActivity(startTime, interval);
    textView.setText(textView.getText() + String.format("%02d:%02d:%02d", startTime / 3600,
            (startTime % 3600) / 60, (startTime % 60)));

    countDownTimer.start();

}

我的 Milk.Java 页面上有这个倒数计时器。我想把倒数计时器移到我的

Timer.Java 页面是

public class Timer extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.timer);

    }

}

如何编码以便将我的 textView 传递到我的计时器页面?

【问题讨论】:

  • 您想从 Milk 活动启动 Timer 活动并将 countDownTimer 值传递给它??
  • 我的主要活动页面中有一个 onclick 图像按钮。当点击它时,它将在 Milk.Java 中启动意图,这是计时器。但是我想要做的是在单击计时器页面时将该倒计时计时器移动到我的计时器页面
  • 次要注意:int * int 将给您int,即使您稍后将其存储在long 中。因此,例如,如果您的值是 1000 * 60 * 60 * 24 * 30,由于整数溢出,您将得到 -1702967296 的结果。为避免这种情况,请使用long * int,它会给出long,因此请考虑将您的1000 * 60 * 60 * 24 * 7 重写为1000L * 60 * 60 * 24 * 7(以防您以后想要增加此值)。

标签: java android android-studio timer countdowntimer


【解决方案1】:

正如@nick-spriet 所说,您可以使用以下方法传递 TextView 的字符串:

Intent intent = new Intent(this, Timer.class);
intent.putExtra("EXTRA_TIMERDATA", textView.getText().toString());
startActivity(intent);

在你的 Timer 活动中,你可以像这样得到它:

String timerData = (String) getIntent().getStringExtra("EXTRA_TIMERDATA");

【讨论】:

  • 倒数计时器不显示在计时器页面上:(
  • 显示?如果你想在屏幕上显示一个字符串,请使用 TextView。
【解决方案2】:

您可以使用意图将数据从一个活动传递到另一个活动。 如果这不是您要寻找的答案,请说明您的问题。

Intent intent = new Intent(this, Timer.class);
intent.putExtra("EXTRA_TIMERDATA", textView.getText().toString());
startActivity(intent);

http://developer.android.com/training/basics/firstapp/starting-activity.html 您可以在此链接上找到更多信息。它以非常清晰易懂的方式进行了解释。

【讨论】:

  • 如何将保存的数据检索到我的 Timer.java
  • @Cross113 检查我的答案。
  • 您可以使用以下代码访问数据:Intent intent = getIntent(); String data = intent.getStringExtra("EXTRA_TIMERDATA");
【解决方案3】:

正如我在您的其他问题上所回答的那样,您将在 Intent 上添加一些额外内容。但首先,您需要 Button,当有人单击它时,您会启动 Intent。

int timeLeft = textView.getText();
Intent myIntent = new Intent(mycurentActivity.this, secondActivity.class);
myIntent.putExtra("key", timeLeft);
startActivity(myIntent); //When the user click you should run this line.

在接收活动中,您放置另一个 textView 并且您有: 从上一个活动中调用意图:

Intent myIntent = getIntent();  
String time = myIntent.getStringExtra("key");
textView.setText(time);    

并将此 time 设置为您的 countDownTimer。

【讨论】:

  • int timeLeft = textView.getText();给我一个错误,说我需要一个字符序列。而且 coutndown 计时器也在 textView 中,所以它不是一个字符串吗?
  • @Cross113 你现在开始学习安卓编程了吗?我强烈建议您搜索一些您想要做什么的示例,并了解这些文本视图和功能是如何工作的。谈了很多之后,你似乎很迷茫……我已经尽力了,朋友。
猜你喜欢
  • 2019-12-29
  • 1970-01-01
  • 1970-01-01
  • 2020-07-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多