Android アプリケーションで問題が発生しました。100 万のハンドラーを作成する代わりに、1 つのハンドラーに複数のメッセージを入れることができるように、スイッチを作成する必要があります。これが私のコードです:
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();
}
どうすればこれを達成できますか? スイッチが付いているか、それとも何か他のものですか。どんな助けでも大歓迎です。
PS私は初心者なので、回答とともにコードを投稿していただければ幸いです。それは素晴らしいことです。そしてもう一度、ありがとう。