Android:引用查看外部片段|片段中的手势监听器

时间:2014-04-08 03:27:12

标签: android

我在片段中有一个TextView,我想在检测到手势时设置不同的文本。

@Override
public boolean onTouchEvent(MotionEvent event) {
    this.gestureDetector.onTouchEvent(event);
    return super.onTouchEvent(event);
}

上面的代码用于监听手势,但它只能以某种方式在Activity类中使用,当我将.onTouchEvent()放入片段类时,它表示无法解析方法。 任何想法我如何操纵片段外部的视图或任何基本上像我在Activity类中所做的那样的手势?

2 个答案:

答案 0 :(得分:1)

如果您没有其他课程潜入您的片段视图并访问它,那将是更好的封装。相反,让您的片段公开一个方法来执行您想要的操作,并保持对视图中本地视图内部内容的具体知识。 如果这种方法存在障碍,请提出建议,并且可能有一种模式可以帮助您解决问题。

答案 1 :(得分:1)

对于新问题: 片段本身没有onTouchEvent,但任何View都有。因此,覆盖Fragment的onCreateView以查找有问题的TextView并向其添加onTouchEvent。您的onCreateView可能只调用了super(),或者您可以自己调用Inflater或其他任何东西,但这里是使用super的(未经测试的)样本:

@Override
public View onCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View myView = super(inflater, container, savedInstanceState);
    TextView myTextView = myView.findViewById(R.id.my_text_view);
    myTextView.setOnTouchListener(new TextView.OnTouchListener( 
        // body of listener here...
    );
}