通过使用处理程序更新图像视图 - 如何正确使用条件语句?
Updating an image view through the use of a handler - how to correctly use a conditional statement?
我正在尝试创建一个简单的练习摩尔斯电码应用程序。我希望图像视图根据给定的摩尔斯电码序列更改颜色。我试图使用更新 UI 线程中的图像视图的处理程序来执行此操作。
问题是,即使我可以 return 一条消息,但我不确定如何使用 returned 信息来更改图像视图的颜色。我不确定我这样做是否正确(这对我来说是全新的)但我已经创建了一个发送到 UI 的包 - 我需要使用这些信息来确定图像的颜色观点应该是。我想知道是否有人有任何 ideas/advice 作为解决此问题的最佳方法?我正处于知识的边缘,并试图研究这个主题。
//Handler which receives the message
static Handler myHandler = new Handler() {
public void handleMessage(Message msg) {
Bundle bundle = msg.getData();
String str1 = bundle.getString("dot");
String str2 = bundle.getString("dash");
//I think i need to use a conditional statement here
}
};
//Logic done within the worker thread
for (int i = 0; i < cArray.length; i++) {
if (cArray[i] == '.') {
msg = new Message();
bundle = new Bundle();
bundle.putString("dot", "dot dot dot");
msg.setData(bundle);
Sos.myHandler.sendMessage(msg);
try {
Thread.sleep(50);
}catch(Exception e)
{
}
try {
Thread.sleep(offIntervalTime);
}catch(Exception e)
{
}
} else if(cArray[i] == ' ')
{
try{
Thread.sleep(100);
}catch(Exception e)
{
}
}
else {
msg = new Message();
bundle = new Bundle();
bundle.putString("dash", "dash dash dash");
msg.setData(bundle);
Sos.myHandler.sendMessage(msg);
try{
Thread.sleep(dash);
}catch(Exception e)
{
}
try{
Thread.sleep(offIntervalTime);
}catch(Exception e)
{
}
}
}
由于我的建议对你有用,所以将其添加为答案。
使用 msg.what
值 set/get 并根据相同值采取行动。
我正在尝试创建一个简单的练习摩尔斯电码应用程序。我希望图像视图根据给定的摩尔斯电码序列更改颜色。我试图使用更新 UI 线程中的图像视图的处理程序来执行此操作。
问题是,即使我可以 return 一条消息,但我不确定如何使用 returned 信息来更改图像视图的颜色。我不确定我这样做是否正确(这对我来说是全新的)但我已经创建了一个发送到 UI 的包 - 我需要使用这些信息来确定图像的颜色观点应该是。我想知道是否有人有任何 ideas/advice 作为解决此问题的最佳方法?我正处于知识的边缘,并试图研究这个主题。
//Handler which receives the message
static Handler myHandler = new Handler() {
public void handleMessage(Message msg) {
Bundle bundle = msg.getData();
String str1 = bundle.getString("dot");
String str2 = bundle.getString("dash");
//I think i need to use a conditional statement here
}
};
//Logic done within the worker thread
for (int i = 0; i < cArray.length; i++) {
if (cArray[i] == '.') {
msg = new Message();
bundle = new Bundle();
bundle.putString("dot", "dot dot dot");
msg.setData(bundle);
Sos.myHandler.sendMessage(msg);
try {
Thread.sleep(50);
}catch(Exception e)
{
}
try {
Thread.sleep(offIntervalTime);
}catch(Exception e)
{
}
} else if(cArray[i] == ' ')
{
try{
Thread.sleep(100);
}catch(Exception e)
{
}
}
else {
msg = new Message();
bundle = new Bundle();
bundle.putString("dash", "dash dash dash");
msg.setData(bundle);
Sos.myHandler.sendMessage(msg);
try{
Thread.sleep(dash);
}catch(Exception e)
{
}
try{
Thread.sleep(offIntervalTime);
}catch(Exception e)
{
}
}
}
由于我的建议对你有用,所以将其添加为答案。
使用 msg.what
值 set/get 并根据相同值采取行动。