Java 在处理程序中执行切换(ProgressDialog)
我在Android应用程序中遇到了一个问题。我需要创建一个开关,这样我就可以在一个处理程序中放入多条消息,而不是创建一百万个处理程序。这是我的密码:Java 在处理程序中执行切换(ProgressDialog),java,android,Java,Android,我在Android应用程序中遇到了一个问题。我需要创建一个开关,这样我就可以在一个处理程序中放入多条消息,而不是创建一百万个处理程序。这是我的密码: String text1 = spinner1.getSelectedItem().toString().trim(); String text2 = spinner2.getSelectedItem().toString().trim(); dialog1 = ProgressDialog.show(getActivity(), "", "Ca
String text1 = spinner1.getSelectedItem().toString().trim();
String text2 = spinner2.getSelectedItem().toString().trim();
dialog1 = ProgressDialog.show(getActivity(), "", "Calculating...");
if (text1.equals("US Dollar - USD") && text2.equals("Euro - EUR") && edittextdollars.length() > 0 && edittexteuros.length()==0) {
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
try{
handler.sendEmptyMessage(0);
convertvalues("USD", "EUR");
}
catch (Exception e) {
}
}
});
thread.start();
}
public Handler handler = new Handler () {
public void handleMessage(android.os.Message msg) {
dialog1.dismiss();
convertvalues("USD", "EUR");
}
}
;
这是可行的,但我想为多个if语句创建更多消息,如下所示:
if (text1.equals("US Dollar - USD") && text2.equals("Euro - EUR") && edittextdollars.length() > 0 && edittexteuros.length()==0) {
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
try{
handler.sendEmptyMessage(0);
convertvalues("USD", "EUR");
}
catch (Exception e) {
}
}
});
thread.start();
}
if (text1.equals("US Dollar - USD") && text2.equals("Euro - EUR") && edittexteuros.length() > 0 && edittextdollars.length()==0) {
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
try{
handler.sendEmptyMessage(0);
convertvalues2("EUR","USD");
}
catch (Exception e) {
}
}
});
thread.start();
}
if (text1.equals("Euro - EUR") && text2.equals("US Dollar - USD") && edittextdollars.length() > 0 && edittexteuros.length()==0) {
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
try{
handler.sendEmptyMessage(0);
convertvalues("EUR","USD");
}
catch (Exception e) {
}
}
});
thread.start();
}
我如何做到这一点?是用开关还是别的什么。非常感谢您的帮助
附言。
因为我是一个初学者,如果你也在你的答案中发布代码,那就太好了。那太好了。再次感谢您。java中的Switch语句与int和enum以及一些其他语句一起工作 因此,在您的情况下,您可能需要设置一个枚举来保存可能要打开的值
public enum Currency{
USD,
EUR
}
private void test(Currency currency){
switch (currency){
case USD:
doUsdStuff();
break;
case EUR:
doEurStuff();
break;
}
}
或者,可以声明int值而不是枚举
由于您有两个值,您可以执行两个switch语句,保存每个语句的值,然后使用保存的值调用convertValues()。您可以使用变量。尝试提取更改的内容,并围绕这些内容构建代码。在您的例子中,对
convertvalues2
的调用各不相同,因此将参数提取到变量并使用它们
final String fromCurrency = text1.substring(text1.length() - 3);
final String toCurrency = text2.substring(text2.length() - 3);
new Thread(new Runnable() {
@Override
public void run() {
try{
handler.sendEmptyMessage(0);
convertvalues2(fromCurrency, toCurrency);
}
catch (Exception e) {
}
}
});
但是在if/then语句中如何调用它呢?切换的目的是摆脱多个if/else语句。