【问题标题】:onSwipe(int direction) not workingonSwipe(int方向)不起作用
【发布时间】:2013-03-26 00:13:25
【问题描述】:

我无法覆盖 onSwipe() 方法。错误是“Adds 类型的 onSwipe(int) 方法必须覆盖或实现超类型方法”。谁能告诉我我做错了什么?我想使用滑动手势在活动之间导航。还有其他方法吗?如果是这样,请解释。我还需要导入更多的包吗?

package com.mahavega.qcdemo;

import com.mahavega.qcdemo.R;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
import android.widget.TextView;

public class Adds extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.ads);
        TextView tv1 = (TextView) findViewById(R.id.textView1);
        tv1.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                startActivity(new Intent(Adds.this, Ads2.class));
            }
        });
        ImageView im1 = (ImageView) findViewById(R.id.imageView1);
        im1.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                startActivity(new Intent(Adds.this, Real.class));
            }
        });
    }
    @Override
    public void onSwipe(int direction) {
        Intent intent = new Intent();

        switch (direction) {
        case SimpleGestureFilter.SWIPE_RIGHT:
            intent.setClass(this, Ads2.class);
            break;

        case SimpleGestureFilter.SWIPE_LEFT:
            intent.setClass(this, Ads3.class);
            break;
        }

        startActivity(intent);
    }
}

【问题讨论】:

    标签: android swipe-gesture


    【解决方案1】:

    您的活动应该实现 SimpleGestureListener 以便能够接收手势事件。

    public class Adds extends Activity implements OnGestureListener
    

    【讨论】:

    • 显示错误“SimpleGestureListener 无法解析为类型”
    • 我的错,这是一个错字,应该是 SimpleOnGestureListener
    • 更正答案,你应该实现的接口是OnGestureListener,请试一试告诉我
    • 如果你只想监听某个子集,实现你自己的手势监听器扩展 SimpleOnGestureListener 可能会更容易。你一定要看看 android developer 了解更多信息
    【解决方案2】:

    您的错误源于 Activity 没有 onSwipe(int) 方法这一事实。所以错误表明您不能覆盖没有超级方法的方法。 同样正如@sokie 所说,从他添加的链接中查看 OnGestureListener。至于用于开始新活动的滑动手势, 当从左向右滑动时,覆盖调用 onBackPressed (就像你要回去一样)并从右向左滑动开始新的活动。虽然这意味着您必须在每个活动中创建手势侦听器。

    【讨论】:

    • 如何获得这些滑动事件??
    • 您可以通过实现该侦听器来获得滑动事件。如果您遇到问题,您应该在导入包时让您的 IDE 帮助您
    • @o3n 你在你的应用程序中实现了一个 onTouchListener,然后你将事件传递给一个手势监听器,读完这篇文章你应该会有一个想法>stackoverflow.com/a/938657/1359802
    • @Raigex 是非常老的代码,android 现在支持正确的手势检测,并且实现链接的界面是一种更好的方法,因为它几乎完成了该线程中显示的内容。
    • 不知道,上次我认为我需要手势检测时正在使用它。不过很高兴知道。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-03
    • 1970-01-01
    相关资源
    最近更新 更多