我在onOptionsItemSelected(MenuItem item)方法里要实现每读一条记录延迟3秒对UI界面的EditText进行更新。现在问题是无法实现延迟,直接就把数据库最后一条记录显示在了EditText了,并且编译器不报错。(下面的代码写在onOptionsItemSelected()方法里,我也不知道对不对,但逻辑显示方面我必须把它写在该方法里,因为oncreate()先于onOptionsItemSelected()执行,否则无法实现我要的功能)。我分不多,全给你们了...while(cursor.moveToNext())
{
//no = cursor.getString(0);
recordname=cursor.getString(1);
// StudentsService.image = null;
// StudentsService.classes = cursor.getString(3);
// StudentsService.major = cursor.getString(4);
//new Students(no,name,image,classes,major);
final Handler myHandler = new Handler()
{
public void handleMessage(Message msg)
{
//如果该消息是本程序所发送的
if (msg.what == 0x1222)
{
studentnum.setText(recordname);//对UI线程的TextView进行更新
tts.speak(recordname,TextToSpeech.QUEUE_ADD, null);
System.out.print("ssss"+recordname);
}
}
};
new Timer().schedule(new TimerTask()
{
@SuppressLint({ "HandlerLeak", "HandlerLeak" })
@Override
public void run()
{
//新启动的线程无法访问该Activity里的组件
//所以需要通过Handler发送信息
Message msg = new Message();
msg.what = 0x1222;
//发送消息
myHandler.sendMessage(msg);
}
}, 3*1000);
}
cursor.close();
{
//no = cursor.getString(0);
recordname=cursor.getString(1);
// StudentsService.image = null;
// StudentsService.classes = cursor.getString(3);
// StudentsService.major = cursor.getString(4);
//new Students(no,name,image,classes,major);
final Handler myHandler = new Handler()
{
public void handleMessage(Message msg)
{
//如果该消息是本程序所发送的
if (msg.what == 0x1222)
{
studentnum.setText(recordname);//对UI线程的TextView进行更新
tts.speak(recordname,TextToSpeech.QUEUE_ADD, null);
System.out.print("ssss"+recordname);
}
}
};
new Timer().schedule(new TimerTask()
{
@SuppressLint({ "HandlerLeak", "HandlerLeak" })
@Override
public void run()
{
//新启动的线程无法访问该Activity里的组件
//所以需要通过Handler发送信息
Message msg = new Message();
msg.what = 0x1222;
//发送消息
myHandler.sendMessage(msg);
}
}, 3*1000);
}
cursor.close();
解决方案 »
- android2.2 版 无法显示百度地图的标记?
- 初学,问个浏览器和底层之间通讯的问题
- 安卓虚拟机,文件导入sdcard上报错,Read-only file system
- android 2.3 通过wifi调用webservice 很慢,怎么解决?
- 请教用android调用C#的WebService,实现把图片传递到远程数据库
- SAX解析问题
- Service如何主动和Activity通信?
- 有关Drag里几个方法的问题
- 关于android开发时获取两条线的交点坐标问题
- 求指教!!android布局(急等)
- 推箱子,通关后退出键 回到主界面,setClass报错啊
- 安卓如何得到wifi连接的网络名称?
while(cursor.moveToNext()){
String recordname = cursor.getString(1);
//延时3秒更新一次UI线程
mDelayedHandler.postDelayed(runnable, 3 * 1000);
}
Runnable runnable = new Runnable() {
@Override
public void run() {
studentnum.setText(recordname);//对UI线程的TextView进行更新
tts.speak(recordname,TextToSpeech.QUEUE_ADD, null);
}
};
while(cursor.moveToNext())
{
no = cursor.getString(0);
studentnum.setText(no);//对UI线程的TextView进行更新
tts.speak(no,TextToSpeech.QUEUE_ADD, null);
//recordname=cursor.getString(1);
mDelayedHandler.postDelayed(new Runnable(){
public void run() {
// TODO Auto-generated method stub
}}, 5 * 1000);
}