刷新UI的两种实现方法

刷新UI的两种实现方法

http://hi.baidu.com/fighter0425/blog/item/acb24612528406c3ac6e7558.html


因为最近一直在考虑在6410的板子上的android平台上实现温度实时测量并且可以报警的实现方法,去年开始学习android开发,但是却还不知道怎样刷新界面,将采集进来的数据不断地更新。今天上网查了一下,花了两个小时研究了一下,呵呵,终于搞明白该怎么做了。总的来说有两种方法,第一种采用定时器和消息通知的方式实现,第二种采用多线程机制主动去刷新界面。当然这两种方法都离不开android中强大的handler,UI线程的更新采用这种方法确实是个很少的选择。handler在这里就不多说了,网上资料很多,随时都可以查阅。

第一种方法实现:

package du.helloword;

import java.util.Timer;
import java.util.TimerTask;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class HelloActivity extends Activity {
/** Called when the activity is first created. */
private final int UPDATE_DATA= 1;
private TextView mydata;
private Timer mTimer;
private TimerTask mTimerTask;
private Handler mHandler;
private int i=0;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mydata=(TextView)findViewById(R.id.MyData);
Button button1 = (Button)findViewById(R.id.start);
//button1.setOnClickListener(start);
mHandler = new Handler(){
@Override
public void handleMessage(Message msg) {

super.handleMessage(msg);
switch (msg.what) {
case UPDATE_DATA:
i=i+1;
if(i==100)
i=1;
//mydata.setText("");
Log.d("update--data","这是第"+i+"次打印此信息");
mydata.setText("这是第"+i+"次更新数据");
break;

default:
break;
}

}

};
mTimer = new Timer();
mTimerTask = new TimerTask() { //定时器定时处理的函数
@Override
public void run() {
// TODO Auto-generated method stub
mHandler.sendEmptyMessage(UPDATE_DATA);
}

};
mTimer.schedule(mTimerTask, 1000, 3000);
}

}

下面为AVD模拟的截图




第二种方法实现:

package du.activity;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.widget.TextView;

public class Activity01 extends Activity {
private TextView mydata;
private int i;
private Handler handler = new Handler();
private Runnable runnable = new Runnable() {
public void run() {
this.update();
handler.postDelayed(this, 1000 * 2);// 间隔2秒
}
void update() {
i=i+1;
if(i==100)
i=1;
mydata.setText("这是第"+i+"次更新数据");
}
};
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mydata = (TextView) findViewById(R.id.MyData);
mydata.setText("初始状态");
handler.postDelayed(runnable, 1000 * 2);
}
@Override
protected void onDestroy() {
handler.removeCallbacks(runnable); //停止刷新
super.onDestroy();
}
}

以下为截图:



发布到手机上的运行效果



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 微信小程序的界面刷新可以通过两种方式实现,一种是手动刷新,另一种是自动刷新。 手动刷新即用户可以通过手势或者按钮触发界面的刷新操作。在小程序,可以通过调用setData方法来更新数据,从而实现界面刷新。当数据发生变化时,可以通过setData方法将最新的数据传递给小程序的视图层。视图层收到新的数据后,会重新渲染界面,更新显示内容。这样用户就可以看到最新的数据了。 自动刷新是指在一些特定场景下,小程序可以自动刷新界面。例如网络请求返回数据后,可以将最新的数据传递给setData方法,触发自动刷新操作,更新界面显示。又如在小程序使用了定时器,可以通过定时器定时调用setData方法,让界面定时刷新。这样一来,无论是网络请求还是其他触发条件,都能及时地更新界面,使得小程序的显示内容保持最新。 需要注意的是,在刷新界面时,应注意控制刷新的频率,避免过于频繁地刷新界面,造成资源浪费和性能问题。同时,要确保在数据发生变化时及时更新界面,保证用户能够及时看到最新的数据。 总结起来,微信小程序的界面刷新可以通过手动和自动两种方式实现,手动刷新通过调用setData方法来更新数据,自动刷新通过特定的触发条件或定时器自动触发setData方法来更新数据。 ### 回答2: 微信小程序刷新UI方法两种:手动刷新和自动刷新。 手动刷新UI是指在小程序通过用户交互或者点击按钮等方式触发刷新操作。一般情况下,我们可以通过调用小程序提供的setData方法实现手动刷新。setData方法可以更新小程序的数据,并将更新后的数据反映到UI上。具体实现步骤如下: 1. 在小程序的页面文件定义一个用来存储数据的变量,例如data对象。 2. 在需要刷新UI的地方,调用setData方法更新data对象的数据。例如,可以通过修改data对象的某个属性值来实现数据的更新。 3. 当数据更新完成后,setData方法会通知微信客户端刷新UI,将更新后的数据显示在页面上。 自动刷新UI是指在小程序通过定时器或者网络请求等方式自动更新UI。一般情况下,我们可以通过在页面的onLoad生命周期函数设置定时器或者发起网络请求来实现自动刷新。具体实现步骤如下: 1. 在页面的onLoad生命周期函数设置定时器或者发起网络请求。 2. 定时器或者网络请求触发后,执行相关的逻辑操作,更新data对象的数据。 3. 更新完成后,调用setData方法通知微信客户端刷新UI,将更新后的数据显示在页面上。 总之,无论是手动刷新还是自动刷新,微信小程序都提供了setData方法来更新UI。通过更新data对象的数据,可以实现页面的刷新和数据的展示。 ### 回答3: 微信小程序可以通过调用setData方法刷新UI界面。在小程序的开发,我们可以通过获取数据并更新页面的方式来实现UI刷新。 在小程序的js文件,我们可以通过setData方法来更新数据并刷新UI。setData方法接受一个对象作为参数,对象的属性即为需要更新的数据。当调用setData方法后,小程序会自动将新的数据渲染到页面上,从而实现UI刷新。 例如,如果我们有一个计数器的小程序页面,需要在点击按钮后刷新页面上显示的计数器的数值,可以在点击按钮的事件处理函数调用setData方法来更新计数器的数值并刷新UI。代码如下: Page({ data: { count: 0 }, refreshUI: function() { // 更新计数器的数值 this.setData({ count: 1 }); } }) 在上述代码,refreshUI方法会在点击按钮后被调用,通过setData方法来更新count属性的数值为1,从而刷新UI界面上显示的计数器的数值。 通过调用setData方法来更新数据并刷新UI是微信小程序常用的方式之一,它能够快速、灵活地实现UI刷新,提供更好的用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值