0

我正在尝试制作一个应用程序,当触摸屏幕时它会调用一个新的意图。我有在视图类中捕获触摸事件的代码。当我尝试创建一个新意图时,Intent(this, cYesNoDisplay.class);,我收到一个错误,说构造函数未定义,我假设构造函数没有在视图基类中定义,但是 Activity 类?

我对如何做到这一点感到困惑,有没有办法让我的 View 类是意图类的成员,如何称呼它????我想一定有办法做到这一点,还在学习Java。泰德

4

2 回答 2

4

您对问题所在的 View 类的评估是正确的。为了让它工作,这样做:

Intent i = new Intent(NameOfYourActivity.this, cYesNoDisplay.class);

将 [NameOfYourActivity] 替换为您所在的活动的名称。

编辑:我可能误解了你在做什么。如果您实际上已经构建了自己的 View 类并覆盖了 onTouch() ,那么您实际上需要做一些不同的事情。

如果您还没有它,请添加:

Context ctx;

到你的类声明。

在您的构造函数中更改它以将作为参数传入的上下文存储在您声明的 ctx 引用中。

public [ClassName] (Context c){
    this.ctx = c;
}

然后在 onTouch() 里面这样做:

Intent i = new Intent(ctx, cYesNoDisplay.class);
ctx.startActivity();

再次编辑:您必须使用的原因ctx.startActivity(i);是 startActivity() 是 Context 的一种方法。由于 Activity是一个 上下文,当您从 Activity 内部调用它时,您不必在其前面放置任何内容。但是,当您在不同类的“内部”时,您必须使用对 Context 的引用来调用该方法。

于 2012-06-07T17:53:18.787 回答
1

用这个 。这在我的项目中工作正常。

意图 i = new Intent(NameOfYourActivity.this, cYesNoDisplay.class); 开始活动(一);

于 2013-01-09T08:37:32.700 回答