我正在编写一个包含等待线程的脚本。如果线程被执行,它不会更新屏幕。在脚本中我将图片更改为另一张图片,但在我再次按下按钮之前它不会显示。所以主要的问题是:设置不同的图像资源后,我需要更新屏幕。
以下是代码:
public void Start(View view) {
Runnable r = new Runnable() {
@Override
public void run() {
int i =0;
while(i<12) {
synchronized (this) {
try {
Setfoto(i);
Thread.sleep(1000);
Log.i(TAG, "Begonnen met loop");
Log.i(TAG, "i = " + i);
i = i +1;
} catch (Exception e) {}
}
}
}
};
Thread buckysThread = new Thread(r);
buckysThread.start();
}
public void Setfoto(int nummer) {
if (nummer == 1) {
een.setImageResource(R.drawable.eerster);
Log.i(TAG, "Foto 1 wordt rood");
} if(nummer ==2) {
twee.setImageResource(R.drawable.eerster);
Log.i(TAG, "Foto 2 wordt rood");
} if(nummer ==3) {
drie.setImageResource(R.drawable.tweer);
Log.i(TAG, "Foto 3 wordt rood");
}
}
答案 0 :(得分:0)
您需要有某种方式在UI线程上运行代码,该线程负责更新屏幕内容和操作视图。
可以调用 import glob
import panda as pd
def my_function(test_path):
path=test_path +"\\"+ "*mainlog.txt"
files =glob.glob(path)
for name in files:
lines=[line.rstrip('\n')for line in open(name)]
if "a:" in lines:
k_1=pd.Dataframe1
return k_1
elif "b:" in lines:
k_2=pd.Dataframe2
return k_2
elif "c:" in lines:
k_3=pd.Dataframe3
return k_3
elif "d:" in lines:
k_4=pd.Dataframe4
return k_4
elif "e:" in lines:
k_5=pd.Dataframe5
return k_5
。放在那里的任何代码都将在UI线程上运行。
答案 1 :(得分:0)
您可以使用runOnUiThread
,AsyncTask
或Thread-Handler
来执行您的任务
Activity.runOnUiThread
runOnUiThread(new Runnable(){ public void run(){ //在UiThread上做点什么 } });
主题处理程序
Communicating with the UI Thread