如何动态(定期)更新 TextView?

How to update TextView dynamically (periodically)?

我正在开发一个带有可滚动 TextView 的简单 android activity。我在 TextView 中延迟显示 1-100 的数字。但是我想要的输出不是我得到的。

当前输出: 1 替换为 2 替换为 3....直到 100。
期望的输出:
1
2
3
4
.
.
100

这是我的 Activity 代码:

    public class MainActivity extends ActionBarActivity {

        private static int i = 0;
        TextView textView;
        Handler handler;
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main_page);

            textView = (TextView) findViewById(R.id.text_area);
            new PrimeCalculation().execute();

            handler = new Handler();
            handler.post(updateView);
       }
       private Runnable updateView = new Runnable() {

            @Override
            public void run() {
                if(i <= 100) {
                    textView.setText(Integer.toString(i));
                    i++;
                    handler.postDelayed(this, 1000);
                }
            }
        }; 
    }

创建一个新的字符串数组。将文本视图设置为 array.toString(); 每次计时器用完时,将最新的数字插入数组并重复。最近的数字应该是一个整数,它会在计时器用完时增加。希望这对您有所帮助!

这个怎么样:

textView.setText(textView.getText() + "\n" + i);

试试这个

private Handler mHandler = new Handler();
private int nCounter = 0;

View.OnClickListener mButtonStartListener = new OnClickListener() {
    public void onClick(View v) {
        try {
            mHandler.removeCallbacks(hMyTimeTask);
         //        Parameters
         //        r  The Runnable that will be executed. 
         //        delayMillis  The delay (in milliseconds) until the Runnable will be executed. 
                       mHandler.postDelayed(hMyTimeTask, 1000); // delay 1 second
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
};


private Runnable hMyTimeTask = new Runnable() {
           nCounter++;
               hTextView.append("\n"+nCounter); 
       }
       public void run() {
    }; 

希望对您有所帮助

您可以使用以下代码......

public class MainActivity extends ActionBarActivity {

private static int i = 0;
TextView textView;
Handler handler;
String textViewText="";

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    textView = (TextView) findViewById(R.id.text_area);

    handler = new Handler();
    handler.post(updateView);
}
private Runnable updateView = new Runnable() {

    @Override
    public void run() {
        if(i <= 100) {

// textViewText=textViewText+Integer.toString(i)+" ";

            textView.setText(textViewText);

// textViewText=textViewText+textView.getText().toString();

            i++;
            handler.postDelayed(this, 1000);
        }
    }
};}

希望对你有所帮助....