私はこのプログラムにしばらく取り組んできました。複数のボタンの問題を処理する方法に行き詰まりました。異なるスレッドを開始する必要がある 3 つのボタンがありますが、Google でスレッド化とマルチスレッド化について調べましたが、探していた答えが見つかりませんでした。私の理解では、 public void run() はスレッドのクラスで一度しか呼び出せませんか? 1 つのクラスでコードが異なる複数のスレッドを作成するにはどうすればよいですか?
私の問題に対する最良の解決策であると私が見たものの例は次のとおりです。
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.Line:
// Call to Thread line
break;
case R.id.Enter:
//Call to Thread Enter
break;
case R.id.arc
//Call to Thread Arc
}
ラインスレッドとエンタースレッドの例:
Thread enter = new Thread() {
public void run() {
DrawingUtils call = new DrawingUtils();
EditText cl = (EditText) findViewById(R.id.editText1);
String in = cl.getText().toString();
call.setInputCoords(in);
notifyAll();
}
};
Thread line = new Thread() {
public void run() {
info.setText("Enter X,Y,Z for Point 1");
try {
wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
call.addLine();
info.setText("Enter X,Y,Z for Point 2");
try {
wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
call.addLine();
}
};
line.start();