大佬教程收集整理的这篇文章主要介绍了Android:如何不断更新/传递值从一个活动到另一个活动?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
B – > A – > (10屏幕上,用户更新值为10)
B – > A – > (屏幕上35,用户更新值为9000)等
但是,一旦用户设置了一个时间,它应该不断地更新它并将其计数.
我可以通过Runnable更新屏幕后面的值并打印出控制台上的值,但我不知道为什么它不会经常将值传递回上一个活动A,(所以它是最新的)然后当用户返回B时,将A传递回B.
我应该注意,当我尝试仅在run()而不是updatetiR_684_11845@erButton()中更新额外内容时,屏幕上没有任何内容发生变化,默认值就在那里,但在场景之后值正在更新(控制台).
这是我有的:
public class CustomTimer extends Activity { private final Handler handler = new Handler(); privatE intent intent; private Button timerButton; private EditText hourValue,minuteValue; private long startTime = 0L; private long timeInMilliseconds = 0L; private long timeSwapBuff = 0L; private long updatedTime = 0L; @Override public void onCreate(Bundle savedInstanceStatE) { super.onCreate(savedInstanceStatE); setContentView(R.layout.activity_custom_timer); intent = geTintent(); hourValue = (EditText) findViewById(R.id.hour_value); minuteValue = (EditText) findViewById(R.id.minute_value); timerButton = (Button) findViewById(R.id.start_timer_button); //avoid grabbing values from hour and minute if they were not passed for some reason if(intent.getStringExtra("hourValue") != null) hourValue.setText(geTintent().getStringExtra("hourValue")); if(intent.getStringExtra("minuteValue") != null) minuteValue.setText(geTintent().getStringExtra("minuteValue")); setUpHourValue(); setUpminuteValue(); setUpTimerButton(); } private void setUpHourValue(){ hourValue.setOnEditOractionListener(new TextView.onEditOractionListener() { @Override public Boolean onEditOraction(TextView v,int actionId,KeyEvent event) { hourValue.setText(v.getText().toString()); return false; } }); } private void setUpminuteValue(){ minuteValue.setOnEditOractionListener(new TextView.onEditOractionListener() { @Override public Boolean onEditOraction(TextView v,KeyEvent event) { minuteValue.setText(v.getText().toString()); return false; } }); } private void setUpTimerButton(){ timerButton.setOnClickListener(new View.onClickListener() { public void onClick(View view) { String hourTime = hourValue.getText().toString(); String minuteTime = minuteValue.getText().toString(); //only start the timer if it is not zero if (!hourTime.equals("00") || !minuteTime.equals("00")) { System.out.println("starTing runnable"); startTime = SystemClock.uptimeMillis(); handler.postDelayed(updatetiR_684_11845@erThread,0); } else{ System.out.println("time is default\t" + hourTime + " : " + minuteTime + "************"); } //send the time values BACk to main //this does not constantly update the values,it only updates it once intent.putExtra("hourValue",hourTimE); intent.putExtra("minuteValue",minuteTimE); setResult(RESULT_OK,intent); finish();//go BACk to the prevIoUs page } }); } privatE intent getOuterClassIntent(){ return intent; } private Runnable updatetiR_684_11845@erThread = new Runnable() { //update the time on the screen and constantly pass the values BACk to main public void run() { String hourTime = hourValue.getText().toString(); String minuteTime = minuteValue.getText().toString(); timeInMilliseconds = SystemClock.uptimeMillis() - startTime; updatedTime = timeSwapBuff + timeInMilliseconds; int secs = (int) (updatedTime / 1000); int mins = secs / 60; int hour = mins / 60; secs = secs % 60; //update the time on screen hourValue.setText(Integer.toString(Integer.parseInt(hourTimE) - hour)); minuteValue.setText(Integer.toString(Integer.parseInt(minuteTimE) - secs)); System.out.println("updating time in runnable"); System.out.println(hourValue.getText().toString()+ " : " + minuteValue.getText().toString()); //pass the values BACk to main,but this does NOTHING if I comment out the prevIoUs putExtras (abovE) getOuterClassIntent().putExtra("hourValue",hourTimE); getOuterClassIntent().putExtra("minuteValue",minuteTimE); setResult(RESULT_OK,getOuterClassIntent()); handler.postDelayed(this,0); } }; }
以上是大佬教程为你收集整理的Android:如何不断更新/传递值从一个活动到另一个活动?全部内容,希望文章能够帮你解决Android:如何不断更新/传递值从一个活动到另一个活动?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。