Android 为什么线程先进入睡眠状态,然后在活动中设置TextView?
以下是android first activity中的结果集代码,用户界面有3个EditText和3个按钮或TextView。我需要在第二个文本视图中设置值以显示总分,总分是从前3个EditText计算出来的,在main方法中睡眠10秒而不使用线程,但我在进入睡眠10秒后得到操作ie,并立即显示总分文本视图,并导航到代码中提到的下一个活动ie,所以设置总分后如何等待10秒Android 为什么线程先进入睡眠状态,然后在活动中设置TextView?,android,async-await,Android,Async Await,以下是android first activity中的结果集代码,用户界面有3个EditText和3个按钮或TextView。我需要在第二个文本视图中设置值以显示总分,总分是从前3个EditText计算出来的,在main方法中睡眠10秒而不使用线程,但我在进入睡眠10秒后得到操作ie,并立即显示总分文本视图,并导航到代码中提到的下一个活动ie,所以设置总分后如何等待10秒 EditText etMarkOne,etMarkTwo,etMarkThree; TextView tvTMark
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);
}
}您可以在postDelayed中使用处理程序处理任务10000意味着10秒=10000毫秒:
Handler handler = new Handler();
// do work before delay here
...
handler.postDelayed(new Runnable() {
public void run() {
// do work after delay here
...
}
}, 10000);
请格式化代码。它懒得发布无法阅读的代码,并发送一条消息,说明问题不值得尝试回答。如果不使用线程单击,则需要延迟线程睡眠