[英]How do I pass string from SecondActivity to MainActivity on Android Studio?
[英]Receiving a string value in in MainActivity from SecondActivity, and then counting it down
在我的程序中,您在secondActivity中設置倒數計時器的字符串值。 然后將該值發送到MainActivities textView,然后應該在獲取值后立即開始倒計時。 現在我已經設置了所以你可以設置值,並且值被正確獲取,但是我不知道該怎么做是在收到它時開始倒數這個值。 我已經制作了一個CounterClass。 這是我的MainActivity Code ...
Bundle extras = getIntent().getExtras();
String intentString;
if(extras != null) {
intentString = extras.getString("TimeValue");
timer = new CounterClass(60000, 1000);
timer.start();
timeSent();
} else {
intentString = "Default String";
}
textTime= (TextView) findViewById(R.id.timeText);
textTime.setText(intentString);
你需要啟動你的計時器。 始終閱讀文檔 。
timer = new CounterClass(millisInFuture, countdownInterval);
timer.start();
編輯
millisInFuture ---從調用start()到倒計時完成並調用onFinish()的未來毫秒數。
countDownInterval ---接收onTick(long)回調的路徑。
編輯18-12-2015
將您的intentString轉換為millisInFuture並將其發送到CounterClass。 然后在onTick()
方法onTick()
其格式化為HH:MM。
String time = "16:54";
String split[] = time.split(":");
long futureInMillis = Integer.parseInt(split[0]) * 60 * 60 * 1000 + Integer.parseInt(split[1]) * 60 * 1000;
而不是這個
TextView timeText = (TextView)findViewById(R.id.timeText);
timeText.setText(intentString);
你需要這個
textTime= (TextView)findViewById(R.id.timeText);
textTime.setText(intentString);
timer = new CounterClass(10000, 1000);
timer.start();
您可能會看到timeText已更改為textTime,它是一個類成員變量,您的CounterClass使用它。
讓我們說你真的想要實現自己的類。
我認為最好和最干凈的方法是通過界面。
首先創建一個接口類。
AddTimes.java
public interface AddTimes {
void writeTime(String time);
}
現在,在您的班級中實現您的界面。
public class MainActivity extends AppCompatActivity implements AddTimes{
使用您的類TextView變量“textTime”
timeText = (TextView)findViewById(R.id.timeText); //remove declaration TextView and use timeText instead of textTime .
開始上課
new CounterClass(5000L,500L, this).start();
在CounterClass中,添加構造函數。
AddTimes addTimes;
public CounterClass(long millisInFuture, long countDownInterval, AddTimes addTimes) {
super(millisInFuture, countDownInterval);
this.addTimes = addTimes;
}
替換textTime.setText(hms); to addTimes.writeTime(hms);
最后。 在你的主要活動。 實現AddTimes方法。
public void writeTime(String time) {
timeText.setText("Time - " + time);
}
將代碼原樣復制到MainActivity.java文件中。
希望這可行。
public class MainActivity extends AppCompatActivity {
TextView textTime;
CountDownTimer timer;
int intValue = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Bundle extras = getIntent().getExtras();
if(extras != null) {
String intentString = extras.getString("TimeValue"); //if this is a plain number like 20, 45, 209, 8
intValue = Integer.valueOf(intentString);
}
textTime= (TextView)findViewById(R.id.timeText);
timer = new CountDownTimer(intValue * 1000, 1000) {
public void onTick(long millisUntilFinished) {
intValue--;
textTime.setText("Count Down: " + intValue);
}
@Override
public void onFinish() {}
}
}
timer.start();
}
您只需使用倒計時器:
new CountDownTimer(30000, 1000) {
public void onTick(long millisUntilFinished) {
textField.setText("seconds remaining: " + millisUntilFinished / 1000);
//here you can have your logic to set text to edittext
}
public void onFinish() {
textField.setText("done!");
}
}.start();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.