Android 애플리케이션에서 문제가 발생했습니다. 백만 개의 핸들러를 만드는 대신 핸들러에 여러 메시지를 넣을 수 있도록 스위치를 만들어야합니다. 여기 내 코드입니다 :처리기에서 전환하기 (ProgressDialog)
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 (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();
}
어떻게 이것을 달성합니까? 스위치가 달린 것입니까? 어떤 도움이라도 대단히 감사합니다.
P. 초급자이기 때문에 답변을 포함하여 코드를 게시하면 좋을 것입니다. 그게 좋을거야. 그리고 다시 한번 감사드립니다.
하지만 어떻게 if/then 문에서 이것을 호출합니까? – user2507301
스위치의 목적은 여러 if/else 문을 제거하는 것입니다. –