1

我已经在这个程序上工作了一段时间了。我被困在如何处理我的多个按钮问题上。我有三个按钮需要启动不同的线程,但我查看了谷歌上关于线程和多线程的东西,但我找不到我正在寻找的答案。据我了解,public void run() 只能在线程类中调用一次?我将如何在一个类中创建多个代码不同的线程?

我所看到的最好的解决我的问题的例子是:

@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();
4

2 回答 2

1

创建其他扩展线程的内部类

    class Line extends Thread {
        public void run() {
    DrawingUtils call = new DrawingUtils();
    EditText cl = (EditText) findViewById(R.id.editText1);
    String in = cl.getText().toString();
    call.setInputCoords(in);
    notifyAll();
        }

};

现在开始使用new Line().start()

于 2013-06-21T04:13:23.633 回答
0

U 无法在您启动的新线程上正常更新 UI。请在开发前阅读更多关于 UI 的信息.....这可能会对您有所帮助

在代码中为文本视图设置测试

info.post(new Runnable() {
 @Override
    public void run() {
       info.setText("Enter X,Y,Z for Point 1"); 
    }
});
于 2013-06-21T04:22:16.630 回答