Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在android中为多个线程使用多个按钮?_Java_Android_Multithreading_Performance_Thread Safety - Fatal编程技术网

Java 如何在android中为多个线程使用多个按钮?

Java 如何在android中为多个线程使用多个按钮?,java,android,multithreading,performance,thread-safety,Java,Android,Multithreading,Performance,Thread Safety,我已经为这个项目工作了一段时间了。我被困在如何处理我的多按钮问题上。我有三个按钮需要启动不同的线程,但我在google上查看了线程和多线程的相关内容,但我找不到我想要的答案。 据我所知,对于线程,在一个类中只能调用一次public void run()?如何在一个类中创建代码不同的多个线程 我所看到的解决我的问题的最佳方法是: @Override public void onClick(View v) { // TODO Auto-generated method stub sw

我已经为这个项目工作了一段时间了。我被困在如何处理我的多按钮问题上。我有三个按钮需要启动不同的线程,但我在google上查看了线程和多线程的相关内容,但我找不到我想要的答案。 据我所知,对于线程,在一个类中只能调用一次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
        } 
line thread和enter thread的示例:

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

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

    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();
        }

};

现在开始使用
newline().start()

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

    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();
        }

};

现在开始使用
newline()。start()

您无法在启动的新线程上正常更新UI。。在开发之前,请阅读更多关于UI的信息

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

info.post(new Runnable() {
 @Override
    public void run() {
       info.setText("Enter X,Y,Z for Point 1"); 
    }
});

您无法在启动的新线程上正常更新UI。。在开发之前,请阅读更多关于UI的信息

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

info.post(new Runnable() {
 @Override
    public void run() {
       info.setText("Enter X,Y,Z for Point 1"); 
    }
});

类应该封装一个独特的功能。因此,您必须为功能不同的不同线程编写单独的类。那么,我是否能够为DrawingUtils类创建内部类,并从mainactivity类运行线程?如果是这样的话,当按下按钮时,我将如何调用线程?类应该封装一个独特的功能。因此,您必须为功能不同的不同线程编写单独的类。那么,我是否能够为DrawingUtils类创建内部类,并从mainactivity类运行线程?如果是这样的话,当按下按钮时,我将如何调用线程?感谢我知道的关于处理程序的信息,但没有读过太多关于它们的内容。感谢我知道的关于处理程序的信息,但没有读过太多关于它们的内容。