[英]Timer with intent extras
因此,在activity A
我想使用SeekBar
,它可以在下面的TextView
上设置时间。
这是通过以下代码完成的:
textViewDisplaySekundiVisokogIntenziteta = (TextView) findViewById(R.id.textViewDisplaySekundiVisokogIntenziteta);
seekBarIntervaliVisokogIntenziteta = (SeekBar) findViewById(R.id.seekBarIntervaliVisokogIntenziteta);
seekBarIntervaliVisokogIntenziteta.setMax(60);
seekBarIntervaliVisokogIntenziteta.setProgress(10);
seekBarIntervaliVisokogIntenziteta.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
textViewDisplaySekundiVisokogIntenziteta.setText(progress + " sekundi");
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
但是我在此活动中没有实际的计时器TextView
( TextView
每秒将减少其时间),它位于Activity B
。
我正在尝试通过这样的活动来传递它:
public void homeScreenStart(View view){
new CountDownTimer(seekBarIntervaliVisokogIntenziteta.getProgress() * 1000, 1000){
@Override
public void onTick(long millisUntilFinished) {
Intent i = new Intent(HomeScreen.this, Timer.class);
i.putExtra("visokiInterval", millisUntilFinished/1000);
startActivity(i);
}
@Override
public void onFinish() {
Log.i("Finished", "Timer done");
}
}.start();
}
注意-按下button
时将调用方法homeScreenStart
并像这样在activity B
获取它:
textViewTimerVrijeme = (TextView) findViewById(R.id.textViewTimerVrijeme);
Intent intent = getIntent();
Bundle b = intent.getExtras();
if (b!=null){
String j = (String) b.get("visokiInterval");
textViewTimerVrijeme.setText(j);
}
我没有收到任何logcat错误,但是在Activity B
我没有看到该TextView
,就像它不存在一样。
哪里出问题了?
活动B:
public class Timer extends AppCompatActivity {
TextView proba, textViewTimerVrijeme;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_timer);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
textViewTimerVrijeme = (TextView) findViewById(R.id.textViewTimerVrijeme);
Intent intent = getIntent();
Bundle b = intent.getExtras();
if (b!=null){
String j = (String) b.get("visokiInterval");
textViewTimerVrijeme.setText(j);
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_timer, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_pause:
}
return super.onOptionsItemSelected(item);
}
}
在putExtra中传递字符串值
i.putExtra("visokiInterval", String.valueOf(millisUntilFinished/1000));
活动b变更
Bundle extras = getIntent().getExtras();
if (extras != null) {
String j = extras.getString("visokiInterval");
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.