为什么线程要先睡觉,然后在活动中设置TextView



这是代码,例如android第一活动的结果集,UI有3个EditText和3个Button s或TextView。我需要在第二TextView中设置值,以显示从前3个EditText计算的总标记,并在主方法中不使用线程睡眠10秒,但我在睡眠10秒后获得op ie,并立即显示总TextView并导航到代码中提到的下一个活动,因此如何在设置total

后等待10秒
  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);

相关内容

最新更新