android - 从 ImageView 发送信息扩展到 MainClass

标签 android

我有课

TouchImageView extends ImageView

然后我在这门课上:

setOnTouchListener(new OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {


            switch (event.getAction()) {

            case MotionEvent.ACTION_DOWN:
                    //Tell main class action down
                    break;

                case MotionEvent.ACTION_MOVE:
                    //Tell main class action move

                    break;

                case MotionEvent.ACTION_UP:
                   //Tell main class action up
                    break;

            }


        }

在这个类中,我实现了 onTouch 函数。我需要的是此函数将在使用此 TouchImageView 的主类中执行某些操作;

private TouchImageView touch_iv = (TouchImageView) findViewById(R.id.imageView1);

最佳答案

简单的事情:实现一个setParent(...)方法
然后调用主类的特定函数:
我假设您的主类名为 Main.java

TouchImageView 中:

...

Main parent = null;

public void setParent(Main main)
{
    parent = main;
}

...

setOnTouchListener(new OnTouchListener()
{
    @Override
    public boolean onTouch(View v, MotionEvent event)
    {
        switch (event.getAction())
        {     
            case MotionEvent.ACTION_DOWN:
                if (parent != null)
                    parent.ActionDown(TouchImageView.this, event);
                break;

            case MotionEvent.ACTION_MOVE:
                if (parent != null)
                    parent.ActionMove(TouchImageView.this, event);
                break;

            case MotionEvent.ACTION_UP:
                if (parent != null)
                    parent.ActionUp(TouchImageView.this, event);
                break;
        }
    }
}

...

Main 中:

...

    private TouchImageView touch_iv = (TouchImageView)findViewById(R.id.imageView1);
    touch_iv.setParent(this);

...

public void ActionDown(TouchImageView view, MotionEvent event)
{
    //handle down event "event" freom view "view"
}

public void ActionMove(TouchImageView view, MotionEvent event)
{
    //handle move event "event" freom view "view"
}

public void ActionUp(TouchImageView view, MotionEvent event)
{
    //handle up event "event" freom view "view"
}

...

应该可以。
现在每次 touchimageview 发送时你都会得到一个回调。

关于android - 从 ImageView 发送信息扩展到 MainClass,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22937309/

相关文章:

java - 我的 disposeSplashScene 中出现奇怪的警告

android - 对特定路径使用 Intent.ACTION_PICK

android - 开发定制版本的内置 SMS/MMS Android 应用程序

android - 如何在 Android 中以编程方式获取当前 GPS 位置?

java - 我想在 Android 中解析 Google Map API 以进行反向地理编码

Android 应用程序无响应

android - IndexOutOfBoundsException 对我来说没有意义

java - 使用端点从谷歌数据存储中删除/删除,非法争论异常,不支持使用非零内容长度删除

java - 多少简单的键值对对于在 Android 中存储数据来说太多了?

Android imageview 色调