Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.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 IOActivity和AppCompactActivity_Java_Android_Appcompatactivity_Ioio - Fatal编程技术网

Java IOActivity和AppCompactActivity

Java IOActivity和AppCompactActivity,java,android,appcompatactivity,ioio,Java,Android,Appcompatactivity,Ioio,我在Java开发和从Eclipse迁移方面没有经验。在我需要扩展AppCompactActivity和ioactivity的情况下,我不知道如何使用嵌套类。考虑到这一点,我有另一个内部类循环器已经扩展了另一个类。下面的代码没有运行测试类中的内容。有人可以帮助我如何执行我的内部类,即测试类 我的代码: public class MainActivity extends AppCompatActivity { private class Testing extends IOIOActiv

我在Java开发和从Eclipse迁移方面没有经验。在我需要扩展
AppCompactActivity
ioactivity
的情况下,我不知道如何使用嵌套类。考虑到这一点,我有另一个内部类循环器已经扩展了另一个类。下面的代码没有运行测试类中的内容。有人可以帮助我如何执行我的内部类,即测试类

我的代码:

public class MainActivity extends AppCompatActivity  {

    private class Testing extends IOIOActivity {

        private ToggleButton button_;

        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            button_ = (ToggleButton) findViewById(R.id.toggleButton);

        }

        class Looper extends BaseIOIOLooper {
            /** The on-board LED. */
            private DigitalOutput led_;

            @Override
            protected void setup() throws ConnectionLostException {
                showVersions(ioio_, "IOIO connected!");
                led_ = ioio_.openDigitalOutput(0, true);
                enableUi(true);
            }
 @Override
            public void loop() throws ConnectionLostException, InterruptedException {
                led_.write(!button_.isChecked());
                Thread.sleep(100);
            }

            @Override
            public void disconnected() {
                enableUi(false);
                toast("IOIO disconnected");
            }

            @Override
            public void incompatible() {
                showVersions(ioio_, "Incompatible firmware version!");
            }
        }

        @Override
        protected IOIOLooper createIOIOLooper() {
            return new Looper();
        }

        private void showVersions(IOIO ioio, String title) {
            toast(String.format("%s\n" +
                            "IOIOLib: %s\n" +
                            "Application firmware: %s\n" +
                            "Bootloader firmware: %s\n" +
                            "Hardware: %s",
                    title,
                    ioio.getImplVersion(IOIO.VersionType.IOIOLIB_VER),
                    ioio.getImplVersion(IOIO.VersionType.APP_FIRMWARE_VER),
                    ioio.getImplVersion(IOIO.VersionType.BOOTLOADER_VER),
                    ioio.getImplVersion(IOIO.VersionType.HARDWARE_VER)));
        }

        private void toast(final String message) {
            final Context context = this;
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    Toast.makeText(context, message, Toast.LENGTH_LONG).show();
                }
            });
        }

        private int numConnected_ = 0;

        private void enableUi(final boolean enable) {
            // This is slightly trickier than expected to support a multi-IOIO use-case.
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    if (enable) {
                        if (numConnected_++ == 0) {
                            button_.setEnabled(true);
                        }
                    } else {
                        if (--numConnected_ == 0) {
                            button_.setEnabled(false);
                        }
                    }
                }
            });
        }
    }
}

谢谢

我找到了我的答案,我想在将来与大家分享。这是为了在Android Studio中启动新的IOActivity。IOIO开发人员还没有为AppCompactActivity编写正式的IOIO代码。经过几天的尝试,终于测试并使用IOIO led

  • 在包中创建一个名为AppCompactIOActivity的新类文件(我喜欢这个名称)。注:所有学分归Ytai所有。来自App507的IOIO代码
  • }

  • 然后在你的主要活动中
  • 不要忘记添加来自IOIO开发人员的资源和依赖项。祝你好运

    public class AppCompactIOIOActivity extends AppCompatActivity implements IOIOLooperProvider {
    private final IOIOAndroidApplicationHelper helper_ = new IOIOAndroidApplicationHelper(this, this);
    
    public AppCompactIOIOActivity() {
    }
    
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.helper_.create();
    }
    
    protected void onDestroy() {
        this.helper_.destroy();
        super.onDestroy();
    }
    
    protected void onStart() {
        super.onStart();
        this.helper_.start();
    }
    
    protected void onStop() {
        this.helper_.stop();
        super.onStop();
    }
    
    @SuppressLint("WrongConstant")
    protected void onNewIntent(Intent intent) {
        super.onNewIntent(intent);
        if((intent.getFlags() & 268435456) != 0) {
            this.helper_.restart();
        }
    
    }
    
    protected IOIOLooper createIOIOLooper() {
        throw new RuntimeException("Client must override one of the createIOIOLooper overloads!");
    }
    
    public IOIOLooper createIOIOLooper(String connectionType, Object extra) {
        return this.createIOIOLooper();
    }
    
    public class MainActivity extends AppCompactIOIOActivity {
    
        private ToggleButton button_;
    
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            button_ = (ToggleButton) findViewById(R.id.toggleButton);
    
        }
        class Looper extends BaseIOIOLooper {
            /** The on-board LED. */
            private DigitalOutput led_;
    
            @Override
            protected void setup() throws ConnectionLostException {
                showVersions(ioio_, "IOIO connected!");
                led_ = ioio_.openDigitalOutput(0, true);
                enableUi(true);
            }
    
            @Override
            public void loop() throws ConnectionLostException, InterruptedException {
                led_.write(!button_.isChecked());
                Thread.sleep(100);
            }
    
            @Override
            public void disconnected() {
                enableUi(false);
                toast("IOIO disconnected");
            }
    
            @Override
            public void incompatible() {
                showVersions(ioio_, "Incompatible firmware version!");
            }
        }
    
        @Override
        protected IOIOLooper createIOIOLooper() {
            return new Looper();
        }
    
        private void showVersions(IOIO ioio, String title) {
            toast(String.format("%s\n" +
                            "IOIOLib: %s\n" +
                            "Application firmware: %s\n" +
                            "Bootloader firmware: %s\n" +
                            "Hardware: %s",
                    title,
                    ioio.getImplVersion(IOIO.VersionType.IOIOLIB_VER),
                    ioio.getImplVersion(IOIO.VersionType.APP_FIRMWARE_VER),
                    ioio.getImplVersion(IOIO.VersionType.BOOTLOADER_VER),
                    ioio.getImplVersion(IOIO.VersionType.HARDWARE_VER)));
        }
    
        private void toast(final String message) {
            final Context context = this;
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    Toast.makeText(context, message, Toast.LENGTH_LONG).show();
                }
            });
        }
    
        private int numConnected_ = 0;
    
        private void enableUi(final boolean enable) {
            // This is slightly trickier than expected to support a multi-IOIO use-case.
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    if (enable) {
                        if (numConnected_++ == 0) {
                            button_.setEnabled(true);
                        }
                    } else {
                        if (--numConnected_ == 0) {
                            button_.setEnabled(false);
                        }
                    }
                }
            });
        }
    }