gpt4 book ai didi

Android:从线程访问ui元素

转载 作者:行者123 更新时间:2023-11-30 04:20:07 25 4
gpt4 key购买 nike

public Button stb;
static int cnt=0;
public ArrayList<RadioButton> Butgrp1 = new ArrayList<RadioButton>();
Timer myt;
TimerTask t;

stb.setOnClickListener(new OnClickListener() {

public void onClick(View v) {

myt.schedule(new TimerTask() {

@Override
public void run() {

// TODO Auto-generated method stub


System.out.println("Entering run");
Handler h=new Handler();

h.post(new Runnable() {

public void run() {

// TODO Auto-generated method stub
runOnUiThread(new Runnable() {

public void run() {
// TODO Auto-generated method stub
Butgrp1.get(cnt).setChecked(true);
cnt=cnt+1;
if(cnt>4)
cnt=0;
if(cnt>0)
// Butgrp1.get(cnt-1).setChecked(false);
System.out.println(cnt);
}
});


}
});

//rg.getChildAt(cnt).setPressed(true);

}
},1000,2000);

我需要访问 ui 上的一组单选按钮并将其设置为定期检查,但我不断收到不同的错误,我意识到我必须使用处理程序,但它仍然无法正常工作...有人可以吗告诉我哪里出错了....我是新手,正在尝试一些东西来更好地理解工作...请帮助...

最佳答案

你可以尝试使用自己的Handler代替Timer和定时任务。

RefreshHandler mHandler = new RefreshHandler();

与:

class RefreshHandler extends Handler
{
@Override
public void handleMessage(Message msg)
{
postYourElements();
}

public void sleep(long delayMillis)
{
this.removeMessages(0);
sendMessageDelayed(obtainMessage(0), delayMillis);
}
}

然后使用函数:

private void postYourElements()
{
runOnUiThread(new Runnable() {

public void run() {
// TODO Auto-generated method stub
Butgrp1.get(cnt).setChecked(true);
cnt=cnt+1;
if(cnt>4)
cnt=0;
if(cnt>0)
// Butgrp1.get(cnt-1).setChecked(false);
System.out.println(cnt);
}
});
mHandler.sleep(TimerIntervallInMs);
}

要启动处理程序,只需调用 onClick 方法下的 postYourElements() 函数即可。

我不确定这是否适合你,但你可以试试。

关于Android:从线程访问ui元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9396830/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com