Android - 使用TextView作为进度指示器

时间:2014-07-26 02:14:33

标签: android user-interface

我想做这样的事情:

TextView myStatusLine = (TextView)findViewById(R.id.myStatusLine);

myStatusLine.setText("Start Processing");
doLotsOfNumberCrunchingHere()
myStatusLine.setText("Processing Done");

但是,当然,"开始处理"永远不会出现 我试过这个:

Runnable updateStatus = new Runnable() {
    public void run() {
        myStatusLine.setText("Start Processing");
    }
};
theHandler.post(updateStatus);
doLotsOfNumberCrunchingHere()
myStatusLine.setText("Processing Done");

但这一次,"开始处理"是唯一出现的东西。 (" Processing Done"在此之前可能会非常简短地显示。)

如何让UI显示"开始处理"在调用doLotsOfNumberCrunchingHere()和" Processing Done"之前什么时候回来?

1 个答案:

答案 0 :(得分:3)

你试过AsyncTask吗?

public class advice extends AsyncTask<Void, Void, Void>{

@Override
protected void onPreExecute() {
    myStatusLine.setText("Start Processing");
}
@Override
protected Void doInBackground(Void... params) {
    //your processing
    return null;
}
@Override
protected void onPostExecute(Void result) {
    myStatusLine.setText("Processing Done");
}}