OnTouchListener没有被解雇

峰创

请看下面的代码

XML代码

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".ParagraphReader" >

    <ScrollView
        android:id="@+id/paragraph_reader_scroll_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        >
        <TextView
            android:id="@+id/paragraph_reader_txt"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="30"
            android:singleLine="false"
            android:enabled="true"
            >


        </TextView>

    </ScrollView>






</RelativeLayout>

Java代码

package k.k;

import java.util.ArrayList;
import java.util.List;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View.OnTouchListener;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class ParagraphReader extends Activity {

    private TextView paraText;
    private DatabaseConnector database;
    private List<String>paraList;
    private int currentQuestion;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_paragraph_reader);

        paraText = (TextView)findViewById(R.id.paragraph_reader_txt);
        paraText.setOnTouchListener(paraSwiped);

        paraList = new ArrayList<String>();
        database = DatabaseHandler.getInstance(this);

        //Get the Paragraph list
        int listNumber = getIntent().getIntExtra("PARAGRAPH_LIST", 0);

        Toast.makeText(this, "Selected Paragraph: "+listNumber, Toast.LENGTH_LONG).show();

        paraList = database.getParagraphList(listNumber);
        Toast.makeText(this, "ParaList size "+paraList.size(), Toast.LENGTH_LONG).show();

        //Toast.makeText(this, "Size: "+paraList.size(), Toast.LENGTH_LONG).show();
        paraText.setText(paraList.get(0));

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.paragraph_reader, menu);
        return true;
    }


    //The Event Handler for the Paragraph Text holder
    OnTouchListener paraSwiped = new OnSwipeTouchListener()
    {
        public boolean onSwipeRight() 
         {
            Toast.makeText(ParagraphReader.this, "Right: "+paraList.size(), Toast.LENGTH_SHORT).show();


            return true;
         }

          public boolean onSwipeLeft() 
          {
              Toast.makeText(ParagraphReader.this, "Left: "+paraList.size(), Toast.LENGTH_SHORT).show();

                return true;
          }


    };

}

在这里,您可以看到我已经对实施OnTouchListenerTextView下面是OnTouchListener该类的代码此代码由SO成员之一构建。

package k.k;
import android.view.GestureDetector;
import android.view.GestureDetector.SimpleOnGestureListener;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;

public class OnSwipeTouchListener implements OnTouchListener {

    private final GestureDetector gestureDetector = new GestureDetector(new GestureListener());

    public boolean onTouch(final View v, final MotionEvent event) {
        return gestureDetector.onTouchEvent(event);

    }

    private final class GestureListener extends SimpleOnGestureListener {

        private static final int SWIPE_THRESHOLD = 100;
        private static final int SWIPE_VELOCITY_THRESHOLD = 100;

        @Override
        public boolean onDown(MotionEvent e) {
            return super.onDown(e);
        }

        @Override
        public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
            boolean result = false;
            try {
                float diffY = e2.getY() - e1.getY();
                float diffX = e2.getX() - e1.getX();
                if (Math.abs(diffX) > Math.abs(diffY)) {
                    if (Math.abs(diffX) > SWIPE_THRESHOLD && Math.abs(velocityX) > SWIPE_VELOCITY_THRESHOLD) {
                        if (diffX > 0) {
                            result = onSwipeRight();
                        } else {
                            result = onSwipeLeft();
                        }
                    }
                } else {
                    if (Math.abs(diffY) > SWIPE_THRESHOLD && Math.abs(velocityY) > SWIPE_VELOCITY_THRESHOLD) {
                        if (diffY > 0) {
                            result = onSwipeBottom();
                        } else {
                            result = onSwipeTop();
                        }
                    }
                }
            } catch (Exception exception) {
                exception.printStackTrace();
            }
            return result;
        }
    }

    public boolean onSwipeRight() {
        return false;
    }

    public boolean onSwipeLeft() {
        return false;
    }

    public boolean onSwipeTop() {
        return false;
    }

    public boolean onSwipeBottom() {
        return false;
    }
}

我只需要左右滑动即可,但是由于某些原因,滑动无法正常进行。是的,它不起作用,这意味着什么都没有发生。我不知道该如何纠正。我知道SO成员开发的代码正在工作,因为我正在另一活动中使用它。

用户名

您可以尝试使用android:clickable =“ true”使文本视图可点击。不确定是否可以解决问题,但值得一试。我不确定android:enabled是做什么的,所以它可能在做同样的事情

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

onFinishRender没有被解雇

来自分类Dev

NSPersistentStoreRemoteChangeNotification没有被解雇

来自分类Dev

键盘没有被解雇

来自分类Dev

似乎教义听众没有被解雇

来自分类Dev

使用Otto时订户没有被解雇

来自分类Dev

OnDelete-Cascade没有被“解雇”

来自分类Dev

itemtap没有在列表中被解雇

来自分类Dev

附加onTouchListener后Scrollview没有猛冲

来自分类Dev

如何调试:Rails after_commit似乎没有被解雇?

来自分类Dev

科尔多瓦reader.onloadend没有被解雇

来自分类Dev

Laravel模型观察者方法没有被解雇

来自分类Dev

window.onerror没有在科尔多瓦被解雇

来自分类Dev

科尔多瓦reader.onloadend没有被解雇

来自分类Dev

jQuery在没有被告知的情况下被解雇

来自分类Dev

不会解雇没有渠道的排队作业吗?

来自分类Dev

为什么没有为我设置OnTouchListener?

来自分类Dev

解雇一个ViewController并没有到达想要的Controller

来自分类Dev

解雇后,一个子视图没有其他位置

来自分类Dev

有很多onTouchListener是对的吗?

来自分类Dev

当所有孩子都被解雇时,取出容器

来自分类Dev

在生成所有dom之前先解雇渲染的模板

来自分类Dev

如何使用内部带有ImageView的ViewPager OnTouchListener以及OnClickListener

来自分类Dev

解雇一个异步Task方法,有时不调用

来自分类Dev

解雇后,带有下拉列表的模态对话框不会立即消失

来自分类Dev

带有OnTouchListener的按钮,可在Android Studio中持续按下按钮

来自分类Dev

解雇UIAlertController(最佳做法)

来自分类Dev

如何解雇SKScene?

来自分类Dev

模态解雇如下

来自分类Dev

UIAlertView在返回时被解雇