我想问一下android中怎么使得TextView的文字自动循环变换

作为一个android新学者,好多东西都不懂。最近得到一个任务就是如何使得TextView的文字自动循环变换,就例如你运行后,TextVIew的文字是1,过了1秒变成了2,又过了一秒变成3,大概就是这样,求大神指点啊!

你需要通过异步线程更新UI。Android里实现异步线程的方法太多了,例如AsyncTask,给个示例给你吧:
private AsyncTask<Object, Integer, Double> mTask = new AsyncTask<Object, Integer, Double>(){

private int count = 0;

@Override
protected Double doInBackground(Object... params) {

//一秒更新一次
while (mRun) {
try {
Thread.sleep(1000);
publishProgress(++count);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
return null;
}

@Override
protected void onProgressUpdate(Integer... values) {
super.onProgressUpdate(values);
mTextView.setText(String.valueOf(values[0]));
}

@Override
protected void onPostExecute(Double result) {
//异步任务执行结束
}
};
温馨提示:内容为网友见解,仅供参考
第1个回答  2019-01-03

设置一个定时器Timer,然后设置一个任务,每隔几秒钟就切换一下TextView的显示的值.

系统有一个控件,叫做Chronometer已经是这样的效果了,就是计时器.

第2个回答  2013-07-04
  public class MainActivity extends Activity {
      private TextView tv_display;
      private boolean running = true;
      private int count = 0;
      private Handler handler=new Handler(){
          @Override
          public void handleMessage(Message msg) {
              tv_display.setText("" + count++);
          }
      };
      private Runnable r = new Runnable() {
          @Override
          public void run() {
              while(running){
                  handler.sendEmptyMessage(0);
                  try {
                      Thread.sleep(1000);
                  } catch (InterruptedException e) {
                      e.printStackTrace();
                  }
              }
          }
      };
      
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
          tv_display = (TextView) findViewById(R.id.textView);
          new Thread(r).start();
      }
          
      @Override
      protected void onStop() {
          running = false;
          super.onStop();
      }
  }

第3个回答  2013-07-04
public class Demo extends Activity {

private TextView mTxt;
private Timer mTimer;
private TimerTask mTask;
private int mStauts=0;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mTxt=(TextView) findViewById(R.id.mTxt);
init();
}
private void init(){
mTimer=new Timer();
mTask=new TimerTask() {

@Override
public void run() {
// TODO Auto-generated method stub
mStauts++;
Message msg=new Message();
msg.what=0x112;
handler.sendMessage(msg);
}
};
mTimer.schedule(mTask, 1000, 1000);
}
private Handler handler=new Handler(){
@Override
public void handleMessage(Message msg)
{
if (msg.what == 0x112)
{
mTxt.setText(""+mStauts);
}
}
};
}

我想问一下android中怎么使得TextView的文字自动循环变换
你需要通过异步线程更新UI。Android里实现异步线程的方法太多了,例如AsyncTask,给个示例给你吧:private AsyncTask<Object, Integer, Double> mTask = new AsyncTask<Object, Integer, Double>(){ private int count = 0;Override protected Double doInBackground(Object... params) { \/\/一秒更新一...

安卓textview怎么自动换行了
1、在字符串里加入“\\n”,如"abc\\nrc";2、把TextView设置为固定宽度,然后让系统自动换行。如android:layout_width="100dp";

Android中TextView如何实现水平和垂直滚动
android:singleLine="true",因为TextView默认是会自动换行的android:marqueeRepeatLimit="marquee_forever"是设置永远重复,当然你也可以设置具体的数字android:focusable="true"和android:focusableInTouchMode="true"一定要加上,不然滚动效果出不来在Java代码中加入下面一句话就可以实现垂直滚动 ...

Android里怎么实现TextView里面的文字一个一个逐渐显示出来的动画效果...
很多方式,可以让TextView每隔多少时间重新setText一下。animation是针对View,不针对View上的文字,如果你让一个字显示在一个TextView上面,就可以用animation。

Android Textview怎么实现文字逐个出现并且过长时文本自动向上滚动
把字符串用split拆解成数组,使用定时器往textview追加(append)。向上滚动则可以把textview放在scrollview,在append后面将scrollview滚动到底部

android textview 怎么实现文字滚动
android:singleLine="true"\/\/view单行显示 android:ellipsize="marquee"\/\/滚动样式 android:focusable="true"\/\/可聚焦的 android:focusableInTouchMode="true"\/\/触摸获得焦点 android:marqueeRepeatLimit="marquee_forever" \/\/文字超出则重复滚动 android:scrollHorizontally="true"\/\/水平滚动 android:textColor...

android开发使用AutoCompleteTextView控件,放在模拟器中每次输入字母都...
这个没什么难的,直接把数据集设置到AutoCompleteTextView中就可以了,具体的操作网上很多。

Android中如何使用动画实现文字从右边平移过来之后,再往右回退一点,然 ...
可以在布局里面写动画,先是从右往左平移,然后另一个是从左往右平移,可以设置平移的时间。在代码中找到你的textview控件,然后设置textview的动画是你刚刚写的布局里面的动画,再写一句开始动画的代码就可以了。主要就是布局里面写动画的效果,代码里面找到这个动画并且应用到具体的控件。需要代码的话再...

android按钮点击改变文本值再次点击又变回原来的文本!
textView = (TextView) findViewById(R.id.textView);\/\/初始化这个用来展示文字的textview(这个textview要在R.layout.activity_main里面定义)textView.setText(str1);\/\/设置原来的文本 textView.setTag(false);\/\/标记textview为false(表示没有被点击过)textView.setOnClickListener(new OnClick...

android中textview控件中的文字的位置是如何调整?
有2种方法可以设置TextView文字居中:\\x0d\\x0a一:在xml文件设置:android:gravity="center"\\x0d\\x0a二:在程序中设置:m_TxtTitle.setGravity(Gravity.CENTER);\\x0d\\x0a\\x0d\\x0a备注:android:gravity和android:layout_gravity的区别在于前者对控件内部操作,后者是对整个控件操作。\\x0d\\x0...

相似回答