我正在尝试使用意图在我的主活动上设置一个等于我第二个活动的textview的edittext。第二个活动有一个按钮,当按下该按钮时,计时器将从10秒开始倒计时,并在每次按下按钮时进行计数。 10秒钟后,我要获取textview的值(由按下按钮的次数设置),在主活动上将edittext设置为等于它,然后返回主活动。
这个想法是您可以手动输入主要活动的计数,或使用内置的计时器来帮助您计数。
我的应用程序在打开时崩溃,我尝试了多种方法进行此操作均无济于事。我认为问题可能出在主活动“寻找”意图的onCreate上,但是由于在第二个活动的按钮被按下时它正在运行,所以它不存在。
主要活动
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
qtyInput = (EditText) findViewById(R.id.qtyInput);
valueInput = (EditText) findViewById(R.id.valueInput);
resultText = (TextView) findViewById(R.id.resultText);
Intent intent = getIntent();
String clickCount = intent.getExtras().getString("clickCount");
qtyInput.setText(clickCount);
Button calcButton = (Button) findViewById(R.id.calcButton);
calcButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
float qty = Float.parseFloat(qtyInput.getText().toString());
float value = Float.parseFloat(valueInput.getText().toString());
float total = qty * value * 60;
String stringTotal = String.format("%.0f", total);
resultText.setText(stringTotal);
}
});
Button countButton = (Button) findViewById(R.id.countButton);
countButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(MainActivity.this, CountActivity.class));
}
});
}
第二次活动
final TextView countdownTimer = (TextView) findViewById(R.id.countdownTimer);
final CountDownTimer timer = new CountDownTimer(10000,1000) {
public void onTick(long millisUntilFinished) {
int seconds = (int) ((millisUntilFinished / 1000));
countdownTimer.setText("Time left: " + millisUntilFinished / 1000);
}
public void onFinish() {
String clickCount = countDisplay.getText().toString();
final Intent passCount = new Intent(CountActivity.this, MainActivity.class);
passCount.putExtra("clickCount", clickCount);
startActivity(passCount);
}
};
final TextView countDisplay = (TextView) findViewById(R.id.countDisplay);
int count;
Button countOneButton = (Button) findViewById(R.id.countOneButton);
countOneButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view){
if (clickcount==0) {
timer.start();
clickcount++;
countDisplay.setText("Count: " + clickcount);
}
else {
clickcount++;
countDisplay.setText("Count: " + clickcount);
}
}
});
}
最佳答案
我想采用textview的值(由多少倍设置
按下按钮),将主活动上的edittext设置为
然后返回到主要活动。
从MainActivity
从CountActivity
取回数据的两种方法:
1.在启动MainActivity.this.finish()
活动后,使用当前代码调用CountActivity
。
startActivity(new Intent(MainActivity.this, CountActivity.class));
MainActivity.this.finish();
2.使用
CountActivity
代替startActivityForResult
启动startActivity
活动,并覆盖onActivityResult
中的MainActivity
从CountActivity
返回数据。在完成setResult
活动之前发送数据调用CountActivity
方法。Intent passCount = new Intent();
passCount.putExtra("clickCount", clickCount);
CountActivity.this.setResult(Activity.RESULT_OK,passCount);
CountActivity.this.finish();