这是代码,例如android第一活动的结果集,UI有3个EditText
和3个Button
s或TextView
。我需要在第二TextView
中设置值,以显示从前3个EditText
计算的总标记,并在主方法中不使用线程睡眠10秒,但我在睡眠10秒后获得op ie,并立即显示总TextView
并导航到代码中提到的下一个活动,因此如何在设置total
EditText etMarkOne,etMarkTwo,etMarkThree;
TextView tvTMarks,tvTotal,tvGrade;
int m1,m2,m3,Tmarks;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
inilizeViewControls();
eventHandlingonViewControls();
}
private void eventHandlingonViewControls(){
tvTotal.setOnClickListener(this);
}
private void inilizeViewControls() {
etMarkOne = (EditText) findViewById(R.id.etMarkOne);
etMarkTwo = (EditText) findViewById(R.id.etMarkTwo);
etMarkThree = (EditText) findViewById(R.id.etMarkThree);
tvGrade = (TextView) findViewById(R.id.tvGrade);
tvTMarks = (TextView) findViewById(R.id.tvTMarks);
tvTotal= (TextView) findViewById(R.id.tvTotal);
}
@Override
public void onClick(View v) {
m1 = Integer.parseInt(etMarkOne.getText().toString());
m2 = Integer.parseInt(etMarkTwo.getText().toString());
m3 = Integer.parseInt(etMarkThree.getText().toString());
Tmarks = m1 + m2 + m3;
tvTMarks.setText(""+Tmarks);
Thread.sleep(2000);
Intent i = new Intent(MainActivity.this,ResultActivity.class);
i.putExtra("Tmarks",Tmarks);
i.putExtra(" m1", m1);
i.putExtra(" m2", m2);
i.putExtra(" m3",m3);
startActivityForResult(i,1);
}
}
您可以将Handler
用于您的任务(postDelayed()
中的10000意味着10sec = 10000ms):
Handler handler = new Handler();
// do work before delay here
...
handler.postDelayed(new Runnable() {
public void run() {
// do work after delay here
...
}
}, 10000);