Android SwipeInterceptorView使用DroidQuery作为文本视图

Android SwipeInterceptorView使用DroidQuery作为文本视图,android,android-gesture,droidquery,Android,Android Gesture,Droidquery,我正在使用该库向我的应用程序添加一些手势检测。我在xml文件中添加SwipeInterceptorView时遇到问题(请参见原始问题,因此我在onCreate方法中定义了SwipeInterceptorView,并为其提供了相同的参数。然后我使用layout.addView(SwipeInterceptorView)将其添加到布局文件中。我试图将其添加到xml布局文件中,但出现错误 以编程方式定义SwipeInterceptorView是一种良好做法,还是应该将其添加到XML文件中?如果应该,如

我正在使用该库向我的应用程序添加一些手势检测。我在xml文件中添加SwipeInterceptorView时遇到问题(请参见原始问题,因此我在
onCreate
方法中定义了SwipeInterceptorView,并为其提供了相同的参数。然后我使用
layout.addView(SwipeInterceptorView)
将其添加到布局文件中。我试图将其添加到
xml
布局文件中,但出现错误

以编程方式定义
SwipeInterceptorView
是一种良好做法,还是应该将其添加到
XML
文件中?如果应该,如何修复此
XML
文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/table"
    android:orientation="vertical" >
    <self.philbrown.SwipeInterceptorView xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/swipe_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
    </self.philbrown.SwipeInterceptorView>
    <FrameLayout
        android:id="@+id/fragment_container"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</LinearLayout>

当我使用这个布局时,我得到运行时错误
java.lang.ClassNotFoundException

另外,我知道如何将
onClickListener
添加到
ImageView
中,但是有人能告诉我如何将侦听器也添加到
TextView
中吗

谢谢你的帮助

以编程方式定义SwipeInterceptorView是否是一种良好做法,或者 我应该将其添加到XML文件中吗

最好的做法是在
XML
中定义
视图
,因为这提供了一个可重用的文件(因此您可以在应用程序的其他地方或在其他应用程序中使用它)

这就是说,以编程方式实例化它并不是一种坏的做法——它只是减少了可重用性因素

如何修复此XML文件

我目前还不确定这为什么不起作用。我会尽快更详细地研究它。与此同时,一件确定的事情是下载整个项目,将其导入到您的工作区,并将其作为库项目而不是jar添加

另外,我知道如何将onClickListener添加到ImageView中,但是可以 有人告诉我应该如何将侦听器添加到TextView吗

您可以使用完全相同的方式添加单击侦听器:

mTextView.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        //your code
    }
});
如果要充分利用
droidQuery
库,可以选择使用以下方法之一:

单击

$.with(mTextView).click(new Function() {
    @Override
    public void invoke($ droidQuery, Object... params) {
        //your code
    }
});
打开

$.with(mTextView).on("click", new Function() {
    @Override
    public void invoke($ droidQuery, Object... params) {
        //your code
    }
});
one(仅单击一次手柄)

绑定

Object data = new Object();//could be anything
$.with(mTextView).on("click", data, new Function() {
    @Override
    public void invoke($ droidQuery, Object... params) {//data will be passed as a param
        //your code
    }
});
以编程方式定义SwipeInterceptorView是否是一种良好做法,或者 我应该将其添加到XML文件中吗

最好的做法是在
XML
中定义
视图
,因为这提供了一个可重用的文件(因此您可以在应用程序的其他地方或在其他应用程序中使用它)

这就是说,以编程方式实例化它并不是一种坏的做法——它只是减少了可重用性因素

如何修复此XML文件

我目前还不确定这为什么不起作用。我会尽快更详细地研究它。与此同时,一件确定的事情是下载整个项目,将其导入到您的工作区,并将其作为库项目而不是jar添加

另外,我知道如何将onClickListener添加到ImageView中,但是可以 有人告诉我应该如何将侦听器添加到TextView吗

您可以使用完全相同的方式添加单击侦听器:

mTextView.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        //your code
    }
});
如果要充分利用
droidQuery
库,可以选择使用以下方法之一:

单击

$.with(mTextView).click(new Function() {
    @Override
    public void invoke($ droidQuery, Object... params) {
        //your code
    }
});
打开

$.with(mTextView).on("click", new Function() {
    @Override
    public void invoke($ droidQuery, Object... params) {
        //your code
    }
});
one(仅单击一次手柄)

绑定

Object data = new Object();//could be anything
$.with(mTextView).on("click", data, new Function() {
    @Override
    public void invoke($ droidQuery, Object... params) {//data will be passed as a param
        //your code
    }
});

谢谢。另外,我怎么能让文本视图检测到刷卡?我尝试了与您在上一个答案中显示的图像视图相同的操作,但没有work@user2583347您可以将
文本视图
放入
视图组
——例如
相对视图
框架布局
。这可能是相同的大小正如您的
TextView
现在一样,设置您的
TextView
以填充父边界。最后,将刷卡处理代码添加到此父视图
ViewGroup
。谢谢。您知道如何使用droidQuery库降低刷卡敏感度,从而延长刷卡时间吗?@superuser您需要更改t的实现他通过声明将类变量设置为当前时间(
System.getCurrentTimeMilis()
)来滑动
函数对于
START
事件,然后对于每个刷卡事件,检查事件开始后的时间。如果间隔足够长,您可以对此作出反应。@超级用户,同样,我认为这最好作为一个新问题(我可以在那里发布一些代码)。我很快就会找到它。谢谢。另外,我如何让文本视图检测到刷卡?我尝试了与您在上一个答案中显示的图像视图相同的操作,但没有work@user2583347您可以将
文本视图
放入
视图组
——例如
相对视图
框架布局
is可以与您的
文本视图
现在的大小相同,并设置您的
文本视图
以填充父边界。最后,将刷卡处理代码添加到此父视图
视图组
。谢谢。您知道如何使用droidQuery库降低刷卡敏感度,以便您必须刷卡更长时间吗?@superuser您需要更改通过声明将一个类变量设置为当前时间(
System.getCurrentTimeMilis()
),可以实现
swipe
函数对于
START
事件,然后对于每个刷卡事件,检查事件开始后的时间。如果间隔足够长,您可以对此作出反应。@超级用户,同样,我认为这最好作为一个新问题(我可以在那里发布一些代码)。我将很快查找它。